Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/types.h>
- #include <sys/wait.h>
- #include <unistd.h>
- //sample:
- //gcc gcc.c -o fork1
- //./fork2 /bin/ls *.c
- int main(int argc, char **argv)
- {
- pid_t pid = fork();
- if(pid < 0)
- {
- perror("Cannot fork process");
- exit(1);
- }
- else if (pid == 0)
- {
- //child
- char *argv2[argc];
- argv2[0] = "fork1";//there path
- for(int i = 2; i < argc; i++)
- {
- argv2[i-1] = argv[i];
- }
- argv2[argc] = NULL;
- execve(argv[1], argv2, NULL);//there filename
- }
- printf("child returned: %d \n", WEXITSTATUS(pid));
- wait(&pid);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement