#include <stdio.h>
2 #include <unistd.h>
3 #include <sys/wait.h>
4 void process_create(pid_t* pid,void* func,void * argv)
5 {
6 *pid = fork();
7 if(*pid<0)
8 {
9 perror("fork()");
10 }
11 else if(0 == *pid)
12 {
E> 13 ((int(*)())func) (((char**)argv)[0],(char **)argv);
14 perror("func");
15 }
16 else
17 {
18 int st;
19 while(wait(&st) != *pid);
20 }
21 }
22 int main()
23 {
24 pid_t pid;
W> 25 char * argv[] = {"ls","-l",NULL};
E> 26 process_create(&pid,execvp,argv);
27 return 0;
28 }
运行结果: