'c or linux' 카테고리의 다른 글
env/set 명령어 (0) | 2010.10.20 |
---|---|
pid 0인 프로세스 swapper/pid 1인 프로세스 init 설명 (0) | 2010.10.20 |
errno (0) | 2010.10.20 |
signal 세트 함수 예제 (0) | 2010.10.20 |
alarm/pause 이슈로 인해서 setjmp/longjmp 로 변경 (0) | 2010.10.20 |
#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <errno.h>
int system(const char * cmdstring) {
pid_t pid;
int status;
if (cmdstring == NULL) {
return 1;
}
if ((pid = fork()) < 0) {
status = -1;
} else if (pid == 0) {
execl("/bin/sh", "sh", "-c", cmdstring, (char *) 0);
} else {
while (waitpid(pid, &status, 0) < 0) {
if (errno != EINTR) {
status = -1;
break;
}
}
}
return status;
}
void pr_exit(int s) {
}
int main(void) {
int status;
if ((status = system("date")) < 0) {
perror("system() error");
return -1;
}
pr_exit(status);
if ((status = system("nosuchcommand")) < 0) {
perror("system() error");
return -1;
}
pr_exit(status);
if ((status = system("who;exit 44")) < 0) {
perror("system() error");
return -1;
}
pr_exit(status);
return 1;
}
env/set 명령어 (0) | 2010.10.20 |
---|---|
pid 0인 프로세스 swapper/pid 1인 프로세스 init 설명 (0) | 2010.10.20 |
errno (0) | 2010.10.20 |
signal 세트 함수 예제 (0) | 2010.10.20 |
alarm/pause 이슈로 인해서 setjmp/longjmp 로 변경 (0) | 2010.10.20 |
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |