我前段时间看unix 编程,里面提到shell的编写, 作者说unix 命令在shell里面执行,是由shell进程fork一个进程去执行命令的, 而且当时我自己还写了个简单的shell,的确是这样, 问题是,为什么所有的子进程都属于INIT呢? 我刚在shell里执行一个脚本,发现它的父进程是init, 按照开始说的理论,应该是shell的进程才对啊。 谁知点一下?
by lvscluster - C/C++ - 2009-06-10 12:50:42 阅读(2147) 回复(6)
就是unix高级环境编程的第一章的一个例子。 main() { while(fgets(buf,1024,stdin)!=NULL) { if(pid = fork()<0) printf("error..."); printf("pid=[%d]",pid); if(pid == 0) printf("ok..."); } exit(0); } 有一点不太明白,就是第二个printf()为什么会运行两遍???而且都是pid=0!!!谢谢各位大侠...
不知为何会这样?? PID USERNAME PRI NICE SIZE RES STATE TIME COMMAND 8387 root 23 4 548K 548K onpr 0:00 top 7966 root 51 0 1272K 1272K sleep 0:01 ttyd
[code]进程管理 在系统shell提示下,使用者可以输入各种命令来执行相应的工作。每个命令通常从终端键盘中获取输入,将输 出打印到终端屏幕上,unix使用标准输入stdio和标准输出stdout,来表示每个命令的输入和输出,还使用一 个标准错误输出stderr用于输出错误信息。这三个标准输入输出系统缺省与终端设备相联系在一起,但是也可以使用管 道的概念将它们重新定向,从一个文件或另一个命令中获取输入,输出到另外的文件中或作为...
unix进程管理 8.1 进程的基本概念 8.1.1进程 进程是正在执行的一个程序的实例,通常是由程序,数据集合和进程控制块(Process Control Block 简称PCB)三个部分组成。 程序部分 描述了进程所要完成的功能。 数据集合 包括两个方面的内容,即程序运行时所需要的数据部分和工作区。 进程控制块 含有进程的描述信息和控制信息,是进程动态特性的集中反映,它是系统对进程施行识别和控制的依据。 8.1.2 进程和程序的区别 1...
现在有一个电信发送预存款的程序,fork一个子进程,然后父进程退出,这个字进程扫描一张表,如果有记录则发给其他运营商,但是发生这种情况,个别时候(大约每天一次)因为发送失败发生意外,进程退出,但是实际上好像并没有退出,另外有一个进程在运行!根据日志看也是如此:已经记录了server exit!但是同一时间又有其他纪录,表明进程还在! 此程序在十几个地市运行均没发现此问题(hp 11.0和 aix),是不是跟hp unix 11.0有关呢...
我用的是昌霖终端,在创建tty50182时,终端就是到不了login,查看tty50182没有进程,删除tty50182,重新创建还是没用,创建其他tty号,终端能正常到login,请问我怎样用tty50182使用终端号? l
3.1 程序 程序(program)是存放在磁盘文件中的可执行文件。使用6个e x e c函数中的一个由内核将程序读入存储器,并使其执行。 3.2 进程和进程I D 程序的执行实例被称为进程( process).每个unix进程都一定有一个唯一的数字标识符,称为进程ID(process ID)。进程I D总是一非负整数。 调用函数getpid得到其进程ID。 3.3 进程控制 有三个用于进程控制的主要函数: fork、exec和waitpid. 例: #include ...