wblyuyang

博客园 首页 新随笔 联系 订阅 管理

随笔分类 -  Linux学习笔记

摘要:屏蔽信号:在 sigaction 的使用中,我们已经看到了表示信号集的 sigset_t 型数据。在 Linux 上有一组函数专门用于对信号集进行操作:#include <signal.h>int sigemptyset(sigset_t *set);int sigfillset(sigset_t *set);int sigaddset(sigset_t *set, int signum);int sigdelset(sigset_t *set, int signum);int sigismember(const sigset_t *set, int signum);set 参数指 阅读全文
posted @ 2012-11-15 22:03 wblyuyang 阅读(2145) 评论(0) 推荐(1) 编辑

摘要:使用 sigaction 函数:signal 函数的使用方法简单,但并不属于 POSIX 标准,在各类 UNIX 平台上的实现不尽相同,因此其用途受到了一定的限制。而 POSIX 标准定义的信号处理接口是 sigaction 函数,其接口头文件及原型如下:#include <signal.h>int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);◆ signum:要操作的信号。◆ act:要设置的对信号的新处理方式。◆ oldact:原来对信号的处理方式。◆ 返回值:0 表示 阅读全文
posted @ 2012-11-13 22:32 wblyuyang 阅读(52844) 评论(0) 推荐(1) 编辑

摘要:捕捉信号:使用 signal 函数signal 函数是 Linux 系统上传统的信号处理接口:#include <signal.h>sighandler_t signal(int signum, sighandler_t handler);其中 sighandler_t 类型是一个函数指针类型,定义如下:typedef void (*sighandler_t)(int);这个类型表示一个信号处理函数。signal 函数的作用就是讲 handler 参数所指向的函数注册成为参数 signum 所代表的信号的处理函数,它的返回值是这个信号原来的处理函数,如果返回 SIG_ERR,则说明 阅读全文
posted @ 2012-11-12 22:42 wblyuyang 阅读(1532) 评论(0) 推荐(0) 编辑

摘要:进程的状态迁移:三个基本状态:就绪态、运行态、睡眠态。如下图:图二。进程的终止:自愿终止 和 被迫终止。自愿终止指的是应用程序中主动调用了执行退出过程的系统调用而终止,这个可以通过函数 exit 来做到,其接口头文件与原型如下:#include <stdlib.h>void exit(int status);被迫终止指的是应用程序中没有主动调用退出进程的系统调用而被内核强制终止的情形。当一个进程终止时,内核会通知其父进程。在父进程进行处理前,这个进程成为所谓的僵尸进程,它所占的各种资源已经被回收,但进程描述符仍然存在,以便父进程获取它的退出状态。父进程可以用 wait 函数或 wa 阅读全文
posted @ 2012-11-11 22:09 wblyuyang 阅读(1347) 评论(0) 推荐(0) 编辑

摘要:Linux 中的进程:程序时一个预定义的指令序列,用来完成一个特定的任务。C 编译器可以把每个源文件翻译成一个目标文件,链接器将所有的目标文件与一些必要的库链接在一起,产生一个可执行文件。当程序被执行时,操作系统将可执行文件复制到内存中,这就是程序的映像。进程是一个程序正在执行的实例。每个这样的实例都有自己的地址空间与执行状态。进程必须有一个PID(Process ID,进程标识),以便操作系统能够区分各个不同的进程。操作系统记录进程的 PID 与状态,并根据这些信息来分配系统资源。当操作系统产生一个新的PID,生成对应的用于管理的数据结构,并为运行程序代码分配了必要的资源,一个新的进程就产生 阅读全文
posted @ 2012-11-08 22:33 wblyuyang 阅读(2941) 评论(0) 推荐(0) 编辑

摘要:标准I/O函数库:C标准库提供了文件的标准 I/O 函数库,相比前述的系统调用,主要差别是实现了跨平台的用户态缓冲的解决方案。标准I/O库使用简单,与系统调用I/O相似,也包括打开、读写、关闭这些操作,主要的函数列举如下。◆ 打开与关闭文件:fopen,fclose。◆ 读写文件:fread,fwrite。◆ 读写文本行:fgets,fputs。◆ 格式化读写:fscanf,fprintf。◆ 标准输入输出:printf,scanf。◆ 读写字符:fgetc,getc,getchar,fputc,putc,putchar。◆ 其他:fflush,fseek。所谓标准 I/O 函数实际上是对底层 阅读全文
posted @ 2012-11-07 20:49 wblyuyang 阅读(2765) 评论(0) 推荐(0) 编辑

摘要:文件操作的系统调用接口:文件是Linux系统中的重要概念。它不仅仅是对普通文件的操作接口,也是设备通信、进程间通信、网络通信的重要编程接口。因此文件操作的相关调用也是Linux内核提供的最重要的编程接口。本节将重点叙述如下几个常用的文件操作系统调用。open:打开文件。read:从已打开的文件中读取数据。write:向已打开的文件中写入数据。close:关闭已打开的文件。ioctl:向文件传递控制信息或发出控制命令。对文件的操作工程一般是这样的:先打开文件,内核对打开的文件进行管理,打开成功后应用程序将获得文件描述符;然后应用程序使用文件描述符对文件进行读写操作;当全部操作完毕后,应用程序需要 阅读全文
posted @ 2012-11-05 18:15 wblyuyang 阅读(5799) 评论(0) 推荐(0) 编辑

摘要:文件描述符与索引节点一般来讲,使用与管理文件是通过文件名来进行的,但从应用编程的角度看,文件描述符更有用,而系统中的文件在本质上是通过其索引节点进行管理的。文件描述符是应用程序中表示被打开的文件的一个整数,其他对文件的操作接口都要使用这个整数来指定所操作的文件。从系统的角度来看,文件的索引节点(inode)是文件的唯一标识。一个文件的inode包含文件系统处理文件所需要的全部信息,如访问权限、当前大小等。详细来说,实际上存在两种类型的inode:一个是所谓的内核inode(in-core inode),保存在内存中,在系统中每个打开的文件都对应着一个内核inode;另一个是磁盘inode(on 阅读全文
posted @ 2012-11-04 18:25 wblyuyang 阅读(3183) 评论(0) 推荐(0) 编辑

摘要:文件的几种类型: 1.普通文件 普通文件就是一般意义上的文件,它们作为数据存储在系统磁盘中,可以随机访问文件的内容。Linux系统中的文件是面向字节的,文件的内容以字节为单位进行存储与访问。 2.目录 在Linux系统中,目录也是一种特殊的文件,它们用来包含文件,文件一定在某个目录下。 3.管道 管道是Linux系统中一种进程通信的机制。通常,一个进程写一些数据到管道中,这些数据就可以被另一个进程从这个管道中读取 出来。管道可以分为两种类型:无名管道与命名管道。 >.无名管道由进程在使用时创建,读写结束关闭文件后消失。之所以成为无名管道,是因为它们并不存在于文... 阅读全文
posted @ 2012-11-04 18:00 wblyuyang 阅读(5002) 评论(0) 推荐(0) 编辑

摘要:硬链接:Linux使用的主流文件系统(如ext2,ext3等)都支持硬链接和符号链接。在这些文件系统中,文件与文件的内容并不是固定的一一对应关系。保存文件内容的实体称为索引节点,每个索引节点由它的索引号代表,这些索引号在整个文件系统中是不重复的。而用户看到的文件实质上仅是所在目录中的一条记录,这条记录包含了文件名称和一个索引号,这样就建立了文件名到索引节点的对应关系,这种关系被称为硬链接。符号链接:它可以看成是一个单独的文件,这个文件的内容是另一个文件的路径。mkdir [-p]:如果父目录不存在,则先创建父目录rmdir [-p]:同时删除父目录,rmdir -p a/b/c等价于同时删除a 阅读全文
posted @ 2012-10-28 22:30 wblyuyang 阅读(366) 评论(0) 推荐(0) 编辑

摘要:库是一种软件组件技术,库里面封装了数据和函数。库的使用可以使程序模块化。Windows系统包括静态链接库(.lib文件)和动态链接库(.dll文件)。Linux通常把库文件存放在/usr/lib或/lib目录下。Linux库文件名由:前缀lib、库名和后缀3部分组成,其中动态链接库以.so最为后缀,静态链接库通常以.a作为后缀。在程序中使用使用静态库和动态库时,他们载入的顺序是不同的。静态库的代码在编译时就拷贝的应用程序中,这样的优点是节省编译时间。动态链接库时程序在开始运行后调用库函数时才被载入。静态库的创建和使用:1、在一个头文件种声明静态库所导出的函数。2、在一个源文件种实现静态库所导出 阅读全文
posted @ 2011-12-26 11:12 wblyuyang 阅读(27604) 评论(1) 推荐(0) 编辑

摘要:.Linux目录配置每套Linux distributions他们的配置文件,执行文件,每个目录内放置的东西都差不多,这是有一套标准依据的。 >Linux目录配置的依据--FHS即Filesystem Hierarchy Standard标准,重点在于规范每个特定的目录下应该要放置什么样子的数据。----------------------------------------------------------------------------------- |可分享的(shareable) |不可分享的(unshareable)-------------------... 阅读全文
posted @ 2011-11-26 18:23 wblyuyang 阅读(324) 评论(0) 推荐(0) 编辑

摘要:.权限对档案的重要性:档案是实际含有数据的地方,包括一般文本文件、数据库内容文件、二进制可执行文件等等。因此权限对于 档案来说,意义是这样的:>r(read):可读取此一档案的实际内容,如读取文本文件的文字内容等;>w(write):可以编辑、新增或者是修改该档案的内容(但不含删除该档案);>x(execute):该档案具有可以被系统执行的权限。 Linux下,档案是否能被执行,是由是否具有[x]这个权限决定的,跟档案名没有绝对的关系。.权限对目录的重要性: r,w,x对于目录的意义:>r(read contents in directory): 表示具有读取目录结构列 阅读全文
posted @ 2011-11-20 17:07 wblyuyang 阅读(616) 评论(0) 推荐(0) 编辑

摘要:第一栏:第一个字符: [d]---目录 [-]---档案 [l]---连结档 [b]---为装置文件里面的可供存储的接口设备(可随机存取装置) [c]---为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)接下来后三组:1.为档案拥有者的权限 2.同群组的权限 3.其他非本群组的权限第二栏:表示有多少档名连结到此节点(i-node)每个档案都会将他的权限与属性记录到文件系统的i-node中,不过,我们使用的目录树却是使用文件名来记 录,因此每个档名就会连结到一个i-node,这个属性记录的就是有多少不同的档名连结到相同的一个i-node号码第三栏:表示这个档案或目录的[拥有者账号] 阅读全文
posted @ 2011-11-18 20:19 wblyuyang 阅读(165) 评论(0) 推荐(0) 编辑

摘要:在man的时候,man page显示的内容中,指令或档案后面会接一组数字,代表意义:1>一般用户可以使用的指令或可执行文件5>一些配置文件的档案内容格式8>系统管理员能够使用的管理命令man page显示的内容默认存放在/usr/local/man /usr/share/man等默认目录中linux提供一些在线文献数据,通常放在/usr/share/docLinux最优秀的地方之一,就在于他的多人多任务环境,而为了让各个使用者具有较保密的档案数据,因 此档案管理就变得很重要了。(是啊,多人多任务意味着很多个人同时登陆了linux主机,可每个人的操作环境 并不一定相同,人总是有 阅读全文
posted @ 2011-11-16 11:23 wblyuyang 阅读(261) 评论(0) 推荐(0) 编辑