我的教授給出了C下面的例子:兩個條件如何在if-ifelse-else語句中起作用?
#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
int main() {
pid_t pid;
/* fork another process */
pid = fork();
if (pid < 0) { /* error occurred */
fprintf(stderr, "Fork Failed");
return 1;
}
else if (pid == 0) { /* child process */
execlp("/bin/ls", "ls", NULL);
}
else { /* parent process */
/* parent will wait for the child */
wait (NULL);
printf("Child Completed its execution\n");
}
return 0;
}
我編譯它,並運行它。我在這段代碼中看到了一個奇怪的行爲:
'ls'程序/命令的結果打印在else if條件中,而且還打印出其他字符串「Child Completed its execution \ n」。
這不是一種奇怪的行爲嗎?
當您看到一個您不知道的函數時,請務必查看相關手冊!那裏沒有黑暗魔法。稍微看一下那裏應該啓發你http://linux.die.net/man/2/fork :) – Rerito