随笔分类 -  UNIX编程

UNIX编程,包括驱动,网络编程等等
摘要:信号是软件中断,它提供了一种处理异步事件的方法。很多比较重要的应用程序都需要处理信号。每个信号都有一个名字,以SIG开头,比如SIGTTIN,当后台进程试图读取控制终端会收到此信号。这些信号都定义在中,都是正整数,不存在值为0的信号,kill函数对编号为0的信号有特俗用途,此种信号称为空信号。可以产... 阅读全文
posted @ 2014-11-25 22:42 觉远大师 阅读(354) 评论(0) 推荐(0)
摘要:终端登录inti进程使系统进入多用户状态,init进程读/etc/ttys,对每一个允许登录的终端设备调用一次fork,它所产生的子进程执行getty程序getty为终端调用open函数,以读写方式打开终端,一旦终端被打开,则文件描述符0,1,2就被设置到该终端。getty输出:“login:”提示... 阅读全文
posted @ 2014-11-18 21:32 觉远大师 阅读(455) 评论(0) 推荐(0)
摘要:进程标识每个进程都有一个非负数的唯一ID,称为进程ID,由于进程ID是唯一的,所以经常用于其他标识的一部分,比如文件名等进程除了拥有进程ID外还有其他的ID,通过下面函数可以获取这些ID:#include #include pid_t getpid(void); //return process ... 阅读全文
posted @ 2014-11-14 20:17 觉远大师 阅读(264) 评论(0) 推荐(0)
摘要:main函数内核在通过exec执行main函数之前还会这行启动程序,启动程序地址通常由编译器和链接器在可执行程序中指定。启动程序从内核传递命令行参数以及环境变量传递给main函数以及做一些启动main函数的准备。进程终止正常终止:从main函数返回调用exit,_exit,_Exit进程中最后一个线... 阅读全文
posted @ 2014-11-07 22:52 觉远大师 阅读(389) 评论(0) 推荐(0)
摘要:密码文件密码文件又称用户数据库,一般为/etc/passwd,对应的结构为struct passwd,该文件内容大体如下:描述passwd字段用户名char* pw_name加密密码char* pw_passwdUIDuid_t pw_uidGIDgid_t pw_gid注释char* pw_gec... 阅读全文
posted @ 2014-11-07 20:19 觉远大师 阅读(458) 评论(0) 推荐(0)
摘要:标准IO由ISO C 标准的IO库,它处理了很多底层细节,比如合适的缓冲大小等等,因此更易于使用,但是也引入了一些其他问题。流向标准IO使用FILE对象关联流,流可以是面向宽字节的也可以是面向单字节的,当流初始化的时候是没有方向的,如果后面的IO操作是处理的宽字符集的,流变成面向宽字节的,如果哦是处... 阅读全文
posted @ 2014-11-05 21:43 觉远大师 阅读(465) 评论(0) 推荐(0)
摘要:在unix下提到文件属性,不得不提的一个结构就是stat,stat结构一般定义如下:struct stat { dev_t st_dev; /* ID of device containing file */ ino_t ... 阅读全文
posted @ 2014-11-03 23:33 觉远大师 阅读(1162) 评论(0) 推荐(0)
摘要:内核通过文件描述符引用打开的文件,通常通过open函数或者create函数返回文件描述符。基本函数:unix中基础的文件操作函数只有5个,分别是open,close,lseek,read,write,这几个函数都是无缓冲的,意味着这些函数的执行都是在内核中完成的。open函数:#include in... 阅读全文
posted @ 2014-10-30 22:05 觉远大师 阅读(294) 评论(0) 推荐(0)
摘要:一.Unix 体系结构由上图可以看出,内核居于最里层,Shell,Libary routines,以及Application通过系统调用(system calls)访问内核提供的功能。注意系统调用与函数调用的关系,两者不是一个东西。应用程序可以通过Shell和库访问内核功能,也可以直接通过系统调用访... 阅读全文
posted @ 2014-08-11 20:14 觉远大师 阅读(204) 评论(0) 推荐(0)