您的位置:首页 > 运维架构 > Linux

Linux 进程

2014-02-24 17:11 267 查看
在用户空间,进程是由进程标识符(PID)表示的。从用户的角度来看,一个 PID 是一个数字值,可惟一标识一个进程。一个 PID 在进程的整个生命期间不会更改,但 PID 可以在进程销毁后被重新使用,所以对它们进行缓存并不见得总是理想的。

进程表示

  在 Linux 内核内,进程是由相当大的一个称为
task_struct
的结构表示的。此结构包含所有表示此进程所必需的数据,此外,还包含了大量的其他数据用来统计(accounting)和维护与其他进程的关系(父和子)。

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <signal.h>
#include <string.h>

int main()
{
int status;
char cmd[100];
char* ret;
pid_t pid;

while(1){
printf("mysh>>");
ret = fgets(cmd, sizeof(cmd), stdin);
if(ret == NULL)
exit(-1);
cmd[strlen(cmd)-1]='\0';

if(!strncmp(cmd, "quit", 4))
exit(0);

pid = fork();
if(pid == 0){
execlp(cmd, cmd, NULL);
}else if(pid >0){
waitpid(pid, &status, 0);
}
printf("\n");
}
}


View Code

参考

GNU/LINUX环境编程

/article/5118889.html

http://www.ibm.com/developerworks/cn/linux/l-linux-process-management/

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: