要想掌握 Linux 系统编程,自然要好好学学其信号机制。 本文介绍一个简单的信号接收处理程序,为后面继续深入学习信号机制打下基础。 ...
分类:
其他好文 时间:
2017-01-28 23:01:18
阅读次数:
371
一、wait和waitpid函数 当一个进程正常或异常终止时会向父进程发送SIGCHLD信号。对于这种信号系统默认会忽略。调用wait/waidpid的进程可能会: 阻塞(如果其子进程都还在运行); 立即返回子进程的终止状态(如果一个子进程已经终止正等待父进程存取其终止状态); 出错立即返回(如果它 ...
分类:
系统相关 时间:
2017-01-12 10:32:10
阅读次数:
280
[APUE]进程控制(上) 一、进程标识 进程ID 0是调度进程,常常被称为交换进程(swapper)。该进程并不执行任何磁盘上的程序--它是内核的一部分,因此也被称为系统进程。进程ID 1是init进程,在自举(bootstrapping)过程结束时由内核调用。该进程的程序文件在UNIX的早期版本 ...
分类:
其他好文 时间:
2017-01-08 07:59:23
阅读次数:
318
一、进程标识 进程ID 0是调度进程,常常被称为交换进程(swapper)。该进程并不执行任何磁盘上的程序--它是内核的一部分,因此也被称为系统进程。进程ID 1是init进程,在自举(bootstrapping)过程结束时由内核调用。该进程的程序文件在UNIX的早期版本中是/etc/init,在较 ...
分类:
系统相关 时间:
2017-01-06 23:52:22
阅读次数:
521
一、共享库 共享库使得可执行文件中不再需要包含常用的库函数,而只需在所有进程都可存取的存储区中保存这种库例程的一个副本。程序第一次执行的时候或第一次调用某个库函数的时候,用动态链接方法将程序与共享库函数相链接,这减少了每个可执行文件的长度,但增加了一些运行时间开销。另一个优点就是可以用库函数的新版本 ...
分类:
系统相关 时间:
2017-01-04 22:53:12
阅读次数:
257
一、标准IO的效率 对比以下四个程序的用户CPU、系统CPU与时钟时间对比 程序1:系统IO 程序2:标准IO getc版本 程序3:标准IO fgets版本 结果: 【注:该表截取自APUE,上表中"表3-1中的最佳时间即《程序1》","表3-1中的单字节时间指的是《程序1》中BUFSIZE为1时 ...
分类:
其他好文 时间:
2016-12-31 15:44:27
阅读次数:
236
一、link、unlink、remove和rename 该函数创建一个新目录项newpath,指向现存文件existingpath,如果newpath已存在则返回出错。 此函数删除目录项,并将pathname引用的文件的连接计数-1。 只有当连接计数达到0时该文件的内容才能被删除,如果有进程打开了该 ...
分类:
其他好文 时间:
2016-12-25 01:34:17
阅读次数:
245
一、APUE这一章中的各种晦涩名词 我在读这一章时遇到了各种ID,根据名字完全不清楚什么意思,幸好看到了这篇文章,http://blog.csdn.net/ccjjnn19890720/article/details/6990656,总结一下 每一个进程其实对应了6个以上的ID,它们分别是:实际用户 ...
分类:
其他好文 时间:
2016-12-24 02:02:16
阅读次数:
212
[a] 概念 建议锁:在遵循相同记录锁规则的进程间生效,通常用于保证某个程序自身多个进程间的数据一致性 强制锁:意在保证所有进程间的数据一致性,但不一定有效;如不能应对先 unlink 后建立同名副本的行为 [b] fcntl 操纵记录锁时,fcntl 的第三个参数是一个指向 flock 结构体的指 ...
分类:
其他好文 时间:
2016-12-19 21:31:50
阅读次数:
151
[a] getpwent / setpwent / endpwent getpwent 逐条访问并返回下一项的结构体指针 setpwent 打开并返绕至文件开头 endpwent 关闭所有打开的相关文件 各系统至少支持 struct passwd 中的 7 项,FreeBSD 环境下特权进程可获取加 ...
分类:
其他好文 时间:
2016-12-17 11:19:20
阅读次数:
146