平台:CentOS 5.5 内核 2.6.13
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <wait.h>
#include <string.h>
int main() {
char comm[20];
pid_t pid;
int ret;
while (1) {
printf("root@bogon:");
scanf("%s", comm);
if (strcmp(comm, "exit") == 0)
break;
else {
pid = fork();
if (pid == -1) {
perror("fork");
exit(0);
} else if (pid == 0) {
ret = execlp(comm, comm, NULL);
if (ret == -1) {
exit(1);
}
} else {
wait(NULL);
}
}
}
return 0;
}
运行效果:
[root@bogon Debug]# ./text
root@bogon:ls
makefile objects.mk passwd passwd~ sources.mk src text
root@bogon:who
root :0 2012-08-04 09:22
root pts/2 2012-08-05 17:45 (:0.0)
root@bogon:pwd
/root/workspace/text/Debug
root@bogon:exit
[root@bogon Debug]#