linux
Choice_JJ
这个作者很懒,什么都没留下…
展开
-
linux中do while(0)的解释
在看ldlm的代码过程中遇到了一个很奇怪的问题,有很多宏定义使用了do while(0)这种看起来好像没啥用的代码。然后我就问问师兄,才得知,这种用法很常见,自己又查了一下资料,原来在linux内核代码中经常用到这个东西!现在就将这个东西整理一下。 为什么在内核中碰到很多 #define ... do{...} while(0) ?有以下几点原因:1、空语句在转载 2011-12-20 17:18:12 · 3872 阅读 · 0 评论 -
《鸟哥的linux私房菜 基础篇》第七章读书笔记(下)--文档搜寻which,whereis,locate,find
which [-a] command 寻找执行档(command即为命令)-a 将所有由PATH目录中可以找到的指令均列出,而不知第一个被找到的指令名称。登陆的身份不同,则PATH的定义不同,那么利用which查找出来的就可能不一样 cd是bash内建指令,which [-a] cd找不到。? 档案档名的搜寻:通常先使用whereis和locate,如果找不到,就用f原创 2013-04-08 15:34:37 · 1288 阅读 · 0 评论 -
error while loading shared libraries的解決方法
./tests: error while loading shared libraries: xxx.so.0:cannot open shared object file: No such file or directory那就表示系统不知道xxx.so 放在哪个目录下。这个时候就要在/etc/ld.so.conf中加入xxx.so所在的目录。 一般而言,有很多so会在/usr/lo转载 2013-03-14 10:12:53 · 1087 阅读 · 0 评论 -
警告: 隐式声明与内建函数 ‘xx’ 不兼容 解决方法
linux在编译时出现这类问题,通常是因为缺乏与函数xx相应的头文件,只要加上该头文件就可以了原创 2013-02-28 11:36:19 · 1074 阅读 · 0 评论 -
《鸟哥的linux私房菜 基础篇》第七章读书笔记(中)--常见档案内容查阅命令,chattr,lsattr,SUID,SGID,SBIT,file
档案内容查阅常见命令: cat 由第一行开始显示档案内容,没有翻页,直接显示 tac从最后一行开始显示,是cat的倒写,发向显示 nl 显示的时候,顺便输出行号,可以对行号的显示方式进行多种变化 more 一页一页的显示档案内容,“空格键”下一页,“b”上一页。“/字符串”在显示的内容当中,向下搜寻字符串这个关键词;原创 2013-04-08 15:30:11 · 1327 阅读 · 0 评论 -
ldconfig提示“is not a symbolic link”的解决方法
在编译的时候会出现以下错误:ldconfig ldconfig: /lib/libdb-4.7.so is not a symbolic link这是因为正常情况下libdb-4.7.so是一个符号连接,而不是一个实体文件,因此只需要把它改成符号连接即可mv libdb-4.7.so libdb-4.so.7ln -s libdb-4.so.7 libdb-4.7.so转载 2013-03-26 15:24:55 · 24522 阅读 · 0 评论 -
undefined reference to `ceilf'的解决方法
ceilf是一个在math.h里面的一个数学方法,但是虽然在.c文件里面包含了math.h,有时候也会出现undefined reference to 'ceilf'的错误提示,未定义数学库这时我们就需要在编译的时候加上-lm参数,即gcc test.c -o test -lm如果是用的makefile,就要在相应的文件里面加上-lm参数即可原创 2013-03-26 15:29:49 · 4685 阅读 · 0 评论 -
“glibc detected”, free(), invalid pointer解决方法
在运行的时候出现了这个错误:*** glibc detected *** /home/zyj/zk_lock/.libs/lt-zklocktest: free(): invalid pointer: 0x00000000004106d0 ***开始啥都不明白,只是觉得哪里的free估计除了问题,在网上查了一系列资料后,开始着手来解决。首先需要定位程序里的哪个free函数出的问题,原创 2013-03-26 22:11:31 · 19671 阅读 · 1 评论 -
《鸟哥的linux私房菜 基础篇》第三章学习笔记
第三章主机规划与磁盘分区 磁盘的第一个扇区主要记录了两个重要的信息,分别是: 1.主要启动记录区(MasterBoot Record, MBR):可以安装开机管理程序的地方,有446bytes;2.分割表(partition table):记录整个硬盘分割的状态,有64bytes 磁盘默认的分割表仅能写入四组分割信息原创 2013-04-07 16:20:43 · 1712 阅读 · 0 评论 -
《鸟哥的linux私房菜 基础篇》第八章读书笔记(下)
第八章 linux磁盘与文件系统管理(下)讲述了文件系统的简单操作(df,du,ln等)和磁盘的分区,格式化,检验和挂载(fdisk,mkfs,mke2fs,fsck,badblocks,mount,umount,parted等)。df [-ahikHTm] [目录或文件名] --- 列出文件系统的整体磁盘使用量-a:列出所有的文件系统,包括系统特有的/proc等文原创 2013-04-11 21:20:16 · 1106 阅读 · 0 评论 -
《鸟哥的linux私房菜 基础篇》附录B(EXT2/EXT3文件系统)读书笔记
附录B EXT2/EXT3文件系统EXT2文件系统是由minix文件系统修正而来的,为延伸文件系统。Block ext2文件系统的区块大小为4K,研究显示,4K字节对于一个磁盘区块而言是最理想的。Superblock 在每隔文件系统开始的位置。从一个文件系统中存取任何档案皆必须通过文件系统中的superblock。Inode 对文件系统而言,一个原创 2013-04-12 09:55:49 · 1285 阅读 · 0 评论 -
《鸟哥的linux私房菜 基础篇》第八章读书笔记(上)
第八章 linux磁盘与文件系统管理 (上)记录了文件系统中的superblock, inode, block,data block, inode table,filesystem description, block bitmap, inode bitmap,查询这些信息的命令,挂载点的概念,VFS的简单定义等。扇区(sector)为最小的物理存储单位,每隔扇区为512byt原创 2013-04-11 21:15:21 · 1221 阅读 · 0 评论 -
mysql5.5 启动报错:File './mysql-bin.index' not found (Errcode: 13)
初始化玩数据库之后,使用mysqld_safe启动mysql数据库,如下发现,启动失败[root@SVNServer bin]# ./mysqld_safe --user=mysql&[1] 20539[root@SVNServer bin]# 110806 00:32:19 mysqld_safe Logging to '/usr/local/mysql5.5/data/SVNS转载 2013-04-22 11:02:53 · 1500 阅读 · 0 评论 -
《鸟哥的linux私房菜 基础篇》第九章读书笔记--重点压缩与解压
第九章 档案与文件的压缩与打包本章根据需要对后面的备份部分只进行了简略的阅读压缩与解压缩档案里有相当多的“空间”存在,并不是完全填满的,而“压缩”的技术就是将这些“空间”填满,让整个档案占用的容量下降。压缩比=压缩前/压缩后 占用磁盘空间大小的比常见的压缩的扩展名:*.Z --- compress程序压缩的档案;(很老)*.gz ---原创 2013-04-17 10:43:20 · 1209 阅读 · 0 评论 -
《鸟哥的linux私房菜 基础篇》第十章读书笔记---vim程序编辑器
VIM程序编辑器如果想要多次移动的话,例如向下移动30行,可以使用“30j”或“30向下的箭头”。移动光标:ctrl+d 屏幕向下移动半页ctrl+u 屏幕向上移动半页+ 光标移动到非空格的下一行 - 光标移动到非空格的上一行n 按下一个数字n,比如20,然后按下空格键,光标就会想右移动这一行的n个字符0或功能键[home] 移原创 2013-04-18 09:17:20 · 1619 阅读 · 0 评论 -
《鸟哥的linux私房菜 基础篇》第十一章读书笔记(部分)
第十一章 认识与学习bash为什么学习shell:不同固定distribution中的shell都是一样的;远程管理中,命令行界面比较快;管理系统很方便我们常用的一类shell为Bourne Again SHell (bash).支持的shell记录在/etc/shells文件中登陆取得的shell记录在/etc/passwd文件中,不同的用户所取得的she原创 2013-04-18 21:20:59 · 1388 阅读 · 0 评论 -
打开xshell等无法定位程序输入点*于动态链接库nssock2.dll上的问题解决方法
打开xshell等软件时出现这个错误提示:这是因为缺少nssock2.dll或者是nssock2.dll版本不匹配。所以重新下载最新的nssock2.dll,放到安装目录下即可。下载链接:点击打开链接原创 2013-04-19 16:24:55 · 24932 阅读 · 1 评论 -
《鸟哥的linux私房菜 基础篇》第七章读书笔记(上)--pwd,mkdir,rmdir,PATH,cp,rm,rename,mv
第七章 linux文件与目录管理 根目录的上一层(..)与根目录自己(.)是同一个目录 -代表前一个工作目录 ~代表“目前用户身份”所在的主文件夹 ~account代表account这个用户的主文件夹(account是个账号名称) pwd[-P] 显示当前目录。参数-P,当原创 2013-04-08 15:19:59 · 1492 阅读 · 0 评论 -
《鸟哥的linux私房菜 基础篇》第六章读书笔记
第六章 linux的档案权限与目录配置 drwxr-xr--,other群组的权限中[r--]虽然有r,但是由于没有x的权限,因此others的使用者,并不能进入此目录 目录的r表示可以利用ls命令查询该目录下有哪些文件;w表示你具有更改该目录结构列表的权限,例如新建文件和目录,删除,重命名,转移等;x表示该用户能够进入该目录成为工作目录;要开放目录给任何人原创 2013-04-07 19:10:55 · 1599 阅读 · 2 评论 -
《鸟哥的linux私房菜 基础篇》第五章读书笔记
第五章 首次登入与在线求助man 要先安装windows再安装linux,否则windows在安装的时候,会主动覆盖掉MBR以及自己所在分割槽的启动扇区,你没有机会选择,而且他没有让我们自己选择选单的功能。 文件系统与目录树的关系---挂载:就是利用一个目录当成进入点,将磁盘分区槽的数据放置在该目录下;也就是说,进入该目录就可以读取该分割槽的意思。原创 2013-04-07 18:56:05 · 1115 阅读 · 0 评论 -
list_entry()宏
#define list_entry (ptr, type, memeber)\((type *)((char *)(ptr) - (unsigned long) (&((type)*0) -> member)))使用list_entry()宏在linux链表中访问链表数据。ptr是指向list_head类型链表的指针,type为一个结构,而member为结构type红的一个域转载 2012-01-09 15:32:07 · 901 阅读 · 0 评论 -
自旋锁
对于互斥,信号灯(semaphore)是一个有用的工具,但是它们不是内核提供的唯一这样的工具,相反,大部分加锁是由一种称为自旋锁的机制来实现的。不想信号灯,自旋锁可用在不能睡眠的代码中,例如中断处理。当正确使用了,通常自旋锁提供了比信号灯更高的性能。一个自旋锁是一个互斥设备,只能有两个值:“上锁”和“解锁”。它常常实现为一个整数值中的一个单个位。想获取一个特殊锁的代码测试相关的位。如果锁是可用转载 2012-01-10 16:35:35 · 637 阅读 · 0 评论 -
信号灯semaphore (旗标)
一个旗标是一个单个整型值,结合有一对函数,典型地称为P,V。内核代码中包含,相关的类型是struct semaphore。旗标可以有几种方法来声明和初始化一种是直接创建一个旗标,接着使用sema_init来设定它:void sema_init(struct semaphore *sem, int val);这里的val是安排给旗标的初始值。通常旗标以互斥锁的模式使用。为使它的使转载 2012-01-10 19:55:15 · 1103 阅读 · 0 评论 -
POSIX扫盲
POSIX简介POSIX表示可移植操作系统接口(Portable Operating System Interface),而X则表明其对Unix API的传承。IEEE最初开发POSIX标准是为了提高UNIX环境下应用程序的可移植性。然而,POSIX并不仅仅局限于UNIX。许多其他操作系统,如Microsoft Windows NT和DEC OpenVMS都支持POSIX标准。尤其是IEEE转载 2012-07-23 10:59:36 · 853 阅读 · 0 评论 -
linux异步通知与异步I/O笔记
原文:http://www.cnblogs.com/hanyan225/archive/2010/10/20/1857040.html异步通知:一旦设备准备好,就主动通知应用程序,这种情况下应用程序就不需要查询设备状态。阻塞I/O意味着一直等待设备可访问再访问,非阻塞I/O意味着使用poll()函数来查询是否可访问,而异步通知则意味着设备通知应用程序自身可访问。AIO:Asyn原创 2012-07-25 15:35:11 · 1116 阅读 · 0 评论 -
inode与super block
MBR(Master Boot Record),主引导记录。512字节=446+64+2(446字节主引导程序(boot loader)+64字节分区表(partition table区 DPT)+2字节硬盘有效标志)磁盘的0磁道的第一个扇区称为MBR,它的大小是512字节,并分为两个部分。第一部分为pre-boot区(预启动区),占446字节;第二部分是Partition table区(分区转载 2012-07-24 19:20:29 · 3836 阅读 · 0 评论 -
/proc/sysrq-trigger文件的功能
立即重启计算机 echo "b" > /proc/sysrq-trigger立即关闭计算机 echo "o" > /proc/sysrq-trigger导出内存分配的信息 echo "m" > proc/sysrq-trigger (可以用/var/log/message查看)Outputs memory statistics to the con转载 2012-09-11 09:21:48 · 12941 阅读 · 0 评论 -
Linux中fgets函数注意事项
include char *fgets(char *s, int size, FILE *stream);s:数据存储位置size:读取字符串的最大数量stream:指向FILE结构的指针Linux中的fgets函数的作用是从文件中读取一字符串,也可以从屏幕上输入一字符串(设置最后一个参数为stdin)fgets()用来从参数stream所指的文件内读入字符并存到参数s原创 2012-10-16 21:47:34 · 19148 阅读 · 0 评论 -
Linux中system()函数
system()函数功能强大,很多人用却对它的原理知之甚少先看linux版system函数的源码:#include #include #include #include int system(const char * cmdstring){ pid_t pid; int status; if(cmdstring == NULL){转载 2012-10-17 11:54:01 · 1102 阅读 · 0 评论 -
Linux下各种压缩文件的解压方法
对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕。别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rar。可是Linux就不同了,它有.gz、.tar.gz、tgz、bz2、.Z、.tar等众多的压缩文件名,此外windows下的.zip和.rar也可以在Linux下使用,不过在Linux使用.zip和.r转载 2012-09-26 11:16:51 · 37128 阅读 · 1 评论 -
Linux系统下 execl 函数特点
Linux系统下execl函数特点: 当进程调用一种exec函数时,该进程完全由新程序代换,而新程序则从其main函数开始执行。因为调用exec并不创建新进程,所以前后的进程ID并未改变。exec只是用另一个新程序替换了当前进程的正文、数据、堆和栈段。 特点1.前后进程ID未改变,所以我们可以向该ID发送消息,控制一个不相关的可执行文件。pid转载 2012-10-17 11:56:54 · 1058 阅读 · 0 评论 -
linux的PS命令解析
转载自:http://www.cnblogs.com/wangkangluo1/archive/2011/09/23/2185938.html有时候系统管理员可能只关心现在系统中运行着哪些程序,而不想知道有哪些进程在运行。由于一个应用程序可能需要启动多个进程。所以在同等情况下,进程的数 量要比程序多的多。为此从阅读方面考虑,管理员需要知道系统中运行的具体程序。要实现这个需求的话,就需要利用命令转载 2012-10-29 16:52:47 · 2245 阅读 · 0 评论 -
Linux的fuser命令解析
fuser命令是用来显示所有正在使用着指定的file, file system 或者 sockets的进程信息。例一:#fuser –m –u /mnt/usb1/mnt/usb1: 1347c(root) 1348c(guido) 1349c(guido)在例子一中,使用了-m和-u选项,用来查找所有正在使用/mnt/usb1的所有进程的PID已经该进程的转载 2012-10-29 16:54:06 · 13347 阅读 · 0 评论 -
basename与dirname命令解析
basename命令语法:basename string [suffix]用于返回一个字符串的基本文件名称basename命令读取string参数,删除以 / 结尾的前缀以及任何指定的suffix参数,并将剩余的基本文件名称写至标准输出。basename命令应用以下创建基本文件名称的规则:1· 如果 String 参数是 //(双斜杠) 或如果 String 参数包含的都是斜杠转载 2013-04-07 10:30:25 · 8707 阅读 · 0 评论 -
redhat4.5上mysql的卸载与安装
1. 查看系统中已经安装的mysql #rpm -qa | grep mysql2. 利用命令对查找出来的信息进行一个一个的删除 #rpm -e --nodeps mysql-5.0.45-7.el5 如果出现依赖关系,则先删除依赖的那个程序包。如果出现则可以使用下列命令,加上参数--allmatches #rpm -e --nodep原创 2013-04-20 12:48:17 · 1894 阅读 · 0 评论