无意中找到一个Unix编程FAQ,更好运的是这已经被翻译成中文版了!虽然比较旧了,但还是很有用。
由linuxforum.net提供。感谢他们所做的贡献。
下面贴出章节目录。原文还是在linuxforum.net上,这样应该不算是盗链吧!
- Table of Contents
- 关于
- 1. 进程控制
-
- 1.1. 创建新进程:fork函数
-
- 1.1.1. fork函数干什么?
- 1.1.2. fork函数与vfork函数的区别在哪里?
- 1.1.3. 为何在一个fork的子进程分支中使用_exit函数而不使用exit函数?
- 1.2. 环境变量
-
- 1.2.1. 如何从程序中获得/设置环境变量?
- 1.2.2. 我怎样读取整个环境变量表?
- 1.3. 我怎样睡眠小于一秒?
- 1.4. 我怎样得到一个更细分时间单位的alarm函数版本?
- 1.5. 父子进程如何通信?
- 1.6. 我怎样去除僵死进程?
-
- 1.6.1. 何为僵死进程?
- 1.6.2. 我怎样避免它们的出现?
- 1.7. 我怎样使我的程序作为守护程序运行?
- 1.8. 我怎样象ps程序一样审视系统的进程?
- 1.9. 给定一个进程号,我怎样知道它是个正在运行的程序?
- 1.10. system函数,pclose函数,waitpid函数的返回值是什么?
- 1.11. 我怎样找出一个进程的存储器使用情况?
- 1.12. 为什么进程的大小不缩减?
- 1.13. 我怎样改变我程序的名字(即“ps”看到的名字)?
- 1.14. 我怎样找到进程的相应可执行文件?
-
- 1.14.1. 那么,我把配置文件放在哪里里呢?
- 1.15. 为何父进程死时,我的进程未得到SIGHUP信号?
- 1.16. 我怎样杀死一个进程的所有派生进程?
- 2. 一般文件操作(包括管道和套接字)
-
- 2.1. 如何管理多个连接?
-
- 2.1.1. 我如何使用select()函数?
- 2.1.2. 我如何使用poll()?
- 2.1.3. 我是否可以同时使用SysV IPC和select()/poll()?
- 2.2. 我如何才能知道和对方的连接被终止?
- 2.3. 什么是读取目录的最好方法?
- 2.4. 我如何才能知道一个文件被另外进程打开?
- 2.5. 我如何锁住一个文件?
- 2.6. 我如何能发现一个文件已由另外一个进程更新?
- 2.7. 请问du是怎样工作的?
- 2.8. 我如何得到一个文件的长度?
- 2.9. 我如何像shell里一样扩展在文件名里的’~’?
- 2.10. 有名管道(FIFO)能做什么?
-
- 2.10.1. 什么是有名管道?
- 2.10.2. 我如何建立一个有名管道?
- 2.10.3. 我如何使用一个有名管道?
- 2.10.4. 能否在NFS上使用有名管道?
- 2.10.5. 能否让多个进程同时向有名管道内写入数据?
- 2.10.6. 有名管道的应用
- 3. 终端输入/输出
-
- 3.1. 我怎样使我的程序不回射输入?
- 3.2. 我怎样从终端读取单个字符?
- 3.3. 我怎样检查是否一个键被摁下?
- 3.4. 我怎样将光标在屏幕里移动?
- 3.5. pttys是什么?
- 3.6. 怎样控制一个串行口和调制解调器?
-
- 3.6.1. 串行设备和类型
- 3.6.2. 设置termios的标志位
- 4. 系统信息
-
- 4.1. 怎样知道我的系统有多少存储器容量?
- 4.2. 我怎样检查一个用户的口令?
-
- 4.2.1. 我怎样得到一个用户的口令?
- 4.2.2. 我怎样通过用户号得到阴影口令文件中的口令?
- 4.2.3. 我怎样核对一个用户的口令?
- 5. 编程杂技
-
- 5.1. 我怎样使用通配字符比较字符串?
-
- 5.1.1. 我怎样使用文件名通配模式比较字符串?
- 5.1.2. 我怎样使用正则表达式比较字符串?
- 5.2. 什么是在程序中发送电子邮件的最好方法?
-
- 5.2.1. 简单方法:/bin/mail
- 5.2.2. 直接启动邮件传输代理:/usr/bin/sendmail
- 6. 工具的使用
- 7. 范例程序