【发布时间】:2017-04-13 22:40:06
【问题描述】:
我正在用 C 语言创建一个应用程序,我必须使用命令 execlp 执行 firefox,但每次执行它时,我都会“丢失”我当前的终端,但在 execlp 之后我仍然需要使用终端我以前是这样的,所以我的问题是:有没有一种方法可以让我在一个终端调用execlp 中执行另一个而不阻塞我所在的那个?
这是我的代码的 sn-p:
pid_t child = fork();
if (child == -1) {
perror("fork error");
} else if (child == 0) {
exec_pid = getpid();
execlp("firefox", "firefox", URL, NULL);
perror("exec error");
}
// keep with program logic
【问题讨论】:
-
“失去”你当前的终端”到底是什么意思?你的意思是它失焦了吗?
-
在我为我执行 exec 以继续使用同一个终端后,我必须按任意键或终止我的程序,这就是我说我失去终端时的意思。
-
我无法重现这种行为。你用的是什么操作系统?