关闭

linux进程知识 程序存储、crontab、fork与vfork、exec、_exit()、wait()与waitpid()、孤儿和僵尸

标签: 存储linuxnullcommanddate终端
2291人阅读 评论(0) 收藏 举报
分类:

一、程序存储

      经常被问到进程与线程的区别,今天有人问程序与进程的区别,一下子还真没反应过来 敲打  。程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体。而进程则不同,它是程序在某个数据集上的执行。进程是一个动态的实体,它有自己的生命周期。反映了一个程序在一定的数据集上运行的全部动态过程。 

 

 

二、crontab

 

基本格式 :
*  *  *  *  *  command
分 时 日 月 周 命令

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

 

在终端输入:crontab -e

然后编辑内容为:* * 9 10 0 echo "now the time is .... `date` " >>/home/fsy/io/tempfile

查看:crontab -l

删除:crontab -r

 

 

三、关于fork 进程的补充

   1、用重定向方式输出时应该注意:调用fork的程序,会完全复制一个父进程。所以也会复制一个缓冲区,及如果父进程在缓冲区中有内容,则子进程也会一并获得。那为什么对文件的读写不是两个文件呢?因为子进程复制的是文件标示符,转成文件指针会指向同一个文件。

 

    2、fork用于父子进程同时指行不同的代码段,比如网络服务进程。或用于要执行一个不同的程序,通常是子进程从fork返回后立即调用exec。

 

    3、vfrok()不复制父进程的地址空间。子进程一定是先运行。在调用exec/exit之前,它在父进程的空间中运行

 

四、exec族

  函数还真多,就是功能都一样。一大家子人,长的还差不多,只能干一样事。这存在感,真服了敲打

 

 

 个人感觉记住一个就行:execlp("ls","ls","-l",NULL);

 

 错误判断:

errno=ENOENT    找不到文件或路径

errno=EFAULT     argv/envp忘记用NULL结束

errno=EACCES    没有运行权限

 

 

五、exit()与_exit()

 

    最好使用exit()退出程序。因为会清空缓存。exit()在<stdlib.h>中。_exit()在<unistd.h>中。中间的参数,可以用wait系统调用接收子进程返回值。

 

六、wait与waitpid()

 

  wait()使父进程阻塞直到子进程结束才返回。wait()是waitpid()的一个特例。所以waitpid()更牛一些~

   

 

    通常说来waitpid(),用于等待一个特定的子进程。调用方法为:waitpid(pid1, &stu, WNOHANG) 或者 waitpid(pid1, NULL, 0)微笑

 

 

七、孤儿与僵尸(进程)

   这个...不知道是作者有才,还是翻译有思想,弄出了这么俩词 尴尬 

 

     父进程先死了,子进程就是孤儿了。但是别担心,咱是和 *谐社会,怎么能有孤儿呢?所以马上有个大爹——init 收养这些没人要的进程。

 

    要是子进程先死了,父进程没回收子进程,那他就成了孤魂野鬼。也就变僵尸了惊恐  所以父进程要收尸啊...... 这个也好解决。收尸其实也不费劲,调用wait()/waitpid()就行。这个到处都是僵尸,对社会的安定团结还是有很大影响的。系统所能使用的进程号是有限的,子进程不回收,虽然不占内存了,但是进程号还占着,僵尸多了,正常的子进程就没有进程号了......

 

 

2
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

linux进程知识 程序存储、crontab、fork与vfork、exec、_exit()、wait()与waitpid()、孤儿和僵尸

一、程序存储       经常被问到进程与线程的区别,今天有人问程序与进程的区别,一下子还真没反应过来   。程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体。...
  • a1232345
  • a1232345
  • 2015-03-05 16:25
  • 674

linux系统调用之-fork、wait、waitpid

在前面的文章中,我们已经了解了父进程和子进程的概念,并已经掌握了系统调用exit的用法,但可能很少有人意识到,在一个进程调用了exit之后,该进程并非马上就消失掉,而是留下一个称为僵尸进程(Zombi...
  • q454684431
  • q454684431
  • 2016-03-01 19:14
  • 3450

僵尸进程以及wait和waitpid函数

基本概念:  我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程再创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当...
  • fly__chen
  • fly__chen
  • 2016-11-21 14:18
  • 729

Linux下C进程管理(fork,wait,exec)

在我们编程中用的最多是函数,也就是如何函数调用。那我们如何调用函数呢? 一:我们必须要知道函数的功能是什么? 二:再看这个函数需要哪些参数? 三:最后看返回值是什么? 当我们面对一个函数时,既...
  • liangzhao_jay
  • liangzhao_jay
  • 2015-06-02 17:00
  • 960

Linux进程创建:fork,vfork,exec,clone总结

Linux内核通过一个被称为进程描述符的task_struct结构体来管理进程,这个结构体包含了一个进程所需的所有信息,包括数据段,代码段,堆栈段的地址,当前进程的环境变量,文件的描述符等,在创建进程...
  • xitongfengxi
  • xitongfengxi
  • 2016-07-22 14:42
  • 462

.linux进程知识 程序存储、crontab、fork与vfork、exec、_exit()、wait()与waitpid()、孤儿和僵尸 文件读写 文件锁、select、poll

.linux进程知识 程序存储、crontab、fork与vfork、exec、_exit()、wait()与waitpid()、孤儿和僵尸 文件读写 文件锁、select、poll 分类:...
  • pi9nc
  • pi9nc
  • 2013-07-05 13:27
  • 1309

Linux多任务编程(六)---编写多进程程序及其代码

实验目的    通过编写多进程程序,熟练掌握fork()、exec()、wait()和waitpid()等函数的使用,进一步理解在Linux中多进程编程的步骤。 实验内容    该实...
  • wanghaobo920
  • wanghaobo920
  • 2013-06-30 16:13
  • 816

Linux系统编程_8_进程控制之fork_wait_waitpid函数

fork函数: #include pid_t fork(void); fork用来创建一个子进程; 特点:fork调用后会返回两次,子进程返回0,父进程返回子进程的进程ID;fork返...
  • scottly1
  • scottly1
  • 2014-12-23 10:00
  • 996

Linux多任务编程(五)---wait()、waitpid()函数及其基础实验

wait()和waitpid() 函数说明    wait()函数用于使父进程(也就是调用wait()的进程)阻塞,直到一个子进程结束或者该进程接收到了一个指定的信号为止。如果该父进程没有子进程或者它...
  • mybelief321
  • mybelief321
  • 2013-06-09 21:25
  • 6030

进程—僵尸进程与孤儿进程

原博客地址:http://blog.csdn.net/l953972252/article/details/51399576在探讨这个问题之前,我们先来弄清什么是进程。 进程(Process)是计算...
  • Dandelion_gong
  • Dandelion_gong
  • 2016-06-01 20:44
  • 1186
    个人资料
    • 访问:2190956次
    • 积分:17758
    • 等级:
    • 排名:第626名
    • 原创:220篇
    • 转载:19篇
    • 译文:1篇
    • 评论:693条
    关于

    左手代码右手艺术 追求新浪潮。


    个人网站:blog.songyang.net


    开源项目:


    UIAP : Unity3D内购插件

    UExtend : Unity3D常用功能合集


    微信公众号:松阳论道



    微博:

    我写的书:


    实例妙解Cocos2d-x游戏开发
    博客专栏
    文章分类
    最新评论