ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 几个函数的再学习

几个函数的再学习

原创 Linux操作系统 作者:wuft2003 时间:2010-06-24 11:50:20 0 删除 编辑

1. fork

pid > 0为父进程

pid = 0 为子进程

pid < 0 fork failed,失败的原因主要有两个:1)EAGAIN 达到进程上线2)ENOMEM没有可用内存

 子进程是父进程代码的复制,子进程对变量的处理不会影响父进程。/csrc/下的fork例子

2.(百度百科)

 setsid命令

  linux常用的命令
  setsid命令的一般格式:
  setsid();
  说明:当进程是会话组长时setsid()调用失败。但第一点已经保证进程不是会话组长。setsid()调用成功后,进程成为新的会话组长和新的进程组长,并与原来的登录会话和进程组脱离。由于会话过程对控制终端的独占性,进程同时与控制终端脱离。
  pid_t pid = fork();
  if (pid == 0) {
  ...
  int result = execl(path, "adb", "fork-server", "server", NULL);
  } else {
  // run a program in a new session
  setsid();//之前parent和child运行在同一个session里,而且parent是session头,所以,
  //所以作为session头的parent如果exit结束执行的话,那么会话session组中的所有进程将都被杀死,
  //所以执行setsid()之后,parent将重新获得一个新的会话session组id,child将仍持有原有的会话session组,
  //这时parent退出之后,将不会影响到child了[luther.gliethttp].
  }
  setsid()的返回值:
  成功:调用进程的会话ID;
  失败:-1;
 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21634752/viewspace-666076/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: oracle nvl nvl2
下一篇: 向佛记之一
请登录后发表评论 登录
全部评论

注册时间:2009-05-12

  • 博文量
    295
  • 访问量
    383685