使用 system() 和 sleep() 输入命令

Input command with system() and sleep()

本文关键字:输入 命令 sleep 使用 system      更新时间:2023-10-16

有没有办法使用 system(( 并要求代码等待几秒钟?

我一直在尝试这样的事情:

system("MyCmd");
sleep(8000);

但是,sleep()终止"MyCmd"执行。

有什么想法吗?

但是,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;
}