zoukankan      html  css  js  c++  java
  • 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创建管道:

  • 相关阅读:
    慢性肾炎患者的家庭养护
    中国居民五谷膳食指南
    第二单元丨对环境的察觉
    一个人是否靠谱,闭环很重要
    打赢营销胜仗
    治本修身──中醫內分泌調節養生法
    理想的激励
    卓越演讲:打动听众必知必会的策略和方法(原书第3版)
    每日一题_191008
    每日一题_191007
  • 原文地址:https://www.cnblogs.com/ph829/p/5845674.html
Copyright © 2011-2022 走看看