Linux system函数,linux的system命令

  Linux system函数,linux的system命令

  ignore.sa _ handler=SIG _ IGN/*忽略信号情报和SIGQUIT */

  sigemptyset(忽略。sa _ mask);

  忽略。sa _ flags=0;

  if (sigaction(SIGINT,ignore,saveintr) 0)

  return(-1);

  if (sigaction(SIGQUIT,ignore,savequit) 0)

  return(-1);

  sigemptyset(chldmask);/*现在阻止SIGCHLD */

  sigaddset( chldmask,SIGCHLD);

  if (sigprocmask(SIG_BLOCK,chldmask,savemask) 0)

  return(-1);

  if ((pid=fork()) 0) {

  状态=-1;/*可能超出进程*/

  } else if (pid==0) { /* child */

  /*恢复以前的信号操作,重置信号屏蔽*/

  sigaction(SIGINT,saveintr,NULL);

  sigaction(SIGQUIT,savequit,NULL);

  sigprocmask(SIG_SETMASK,savemask,NULL);

  execl(/bin/sh , sh ,-c ,cmdstring,(char *)0);

  _ exit(127);/*执行错误*/

  } else { /* parent */

  while (waitpid(pid,status,0) 0)

  如果(errno!=EINTR) {

  状态=-1;/*等待PID()*/中除此调用被信号所中断以外的错误

  打破;

  /*恢复以前的信号操作,重置信号屏蔽*/

  if (sigaction(SIGINT,saveintr,NULL) 0)

  return(-1);

  if (sigaction(SIGQUIT,savequit,NULL) 0)

  return(-1);

  if (sigprocmask(SIG_SETMASK,savemask,NULL) 0)

  return(-1);

  返回(状态);

Linux system函数,linux的system命令