execute2.c
来自「关于web server、进程间通信、shell编程的经典源代码」· C语言 代码 · 共 39 行
C
39 行
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <signal.h>#include <sys/wait.h>#include "varlib.h"/* execute2.c - includes environmment handling */int execute(char *argv[])/* * purpose: run a program passing it arguments * returns: status returned via wait, or -1 on error * errors: -1 on fork() or wait() errors */{ extern char **environ; int pid ; int child_info = -1; if ( argv[0] == NULL ) /* nothing succeeds */ return 0; if ( (pid = fork()) == -1 ) perror("fork"); else if ( pid == 0 ){ environ = VLtable2environ(); signal(SIGINT, SIG_DFL); signal(SIGQUIT, SIG_DFL); execvp(argv[0], argv); perror("cannot execute command"); exit(1); } else { if ( wait(&child_info) == -1 ) perror("wait"); } return child_info;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?