Unix/Linux编程实践教程(一:进程、管道)

execvp在程序中启动新程序:

用fork创建新进程:

forkdemo2代码:

测试fork的时候参考《Linux权威指南》阅读笔记(3)  使用了patch

[root@localhost programming]# diff -c forkdemo2.c forkdemo2_new.c > forkdemo2.patch
[root@localhost programming]# patch < forkdemo2.patch 
patching file forkdemo2.c
[root@localhost programming]# ls -lrt
total 7
-rwxrwxrwx 1 root root 4953 Sep  6 11:05 forkdemo2
-rwxrwxrwx 1 root root 4957 Sep  6 11:14 forkdemo2_new
-rwxrwxrwx 1 root root  119 Sep  6 11:17 forkdemo2_new.c
-rwxrwxrwx 1 root root  263 Sep  6 11:24 forkdemo2.patch
-rwxrwxrwx 1 root root  119 Sep  6 11:24 forkdemo2.c
[root@localhost programming]# 

这个forkdemo2输出的pid个数也挺有意思,最好从最底层往上算。

怎么判断是父进程还是子进程:在父进程中fork()的返回值是子进程的pid,在子进程中是0。

父进程用wait等待子进程退出:

子进程退出值保存在wait的参数中:

shell的fork、wait、exit:

exit细节:

exec家族:

释放char**的空间函数值得参考(截图的时候命名带char**竟然没法保存,因为文件名中不能带*,忘记了):

exit0表示成功:

脚本中增加流程控制时的处理函数:

shell变量的存储方式:

标准C库函数getenv可以读取环境变量值:

环境变量保存在一个字符串数组:

comm命令比较两个文件:

使用comm命令找出离开及新登录用户:

最低可用文件描述符原则:

重定向的方法:

close-then-open方法输入重定向:

open-close-dup-close方法:

用open-close-dup-close方法输入重定向:

系统调用dup小结:

open-dup2-close方法:

 系统调用pipe创建管道:

原文地址:https://www.cnblogs.com/ph829/p/5845674.html