有没有办法使用system()并要求代码等待几秒钟?
我一直在尝试这样的事情:
system("MyCmd");
sleep(8000);
但是,sleep()
终止“MyCmd”执行。
有什么想法吗?
答案 0 :(得分:1)
但是,sleep()会终止" MyCmd"执行。
没有。 sleep()
表达式不会终止使用system()
调用创建的子进程,表达式
system("MyCmd");
sleep(8000);
将按顺序执行。
您可以做的是致电fork()
创建子流程,在父流程中调用sleep()
,以及kill()
子流程,如果它仍在运行父进程唤醒后:
pid_t pid = fork();
if (pid == 0) {
// child process
execl ("/bin/MyCmd", "MyCmd", (char *)0);
}
else if (pid > 0) {
// parent process
sleep(8000);
kill(pid,SIGKILL);
}
else {
// fork failed
printf("fork() failed!\n");
return 1;
}