wexitstatus

    0熱度

    1回答

    我有一個命令和一些輸入,當在命令行中運行會返回一個錯誤,與1相關的錯誤代碼: $ foo bar [some useful error message...] $ echo $? 1 我想抓住這個錯誤代碼waitpid(): ... char *proc_cmd = "foo bar" pid_t proc = popen4(proc_cmd, in_fd, out_fd, err_

    0熱度

    1回答

    看着this post我不明白Kaylum的答案。我有兩個問題。 1)他/她希望使用變量「count」來計算產生的進程總數(即子孫孫等的總數+原始進程)。我看到,他/她通過在父進程中將count設置爲1開始,這有意義(對父進行計數),但是然後S/he在子進程中再次將計數設置爲1。爲什麼這有意義?計數已經設置爲1,並且這隻能再次設置計數等於1。 count += WEXITSTATUS(status

    0熱度

    1回答

    我只是一個新手,當涉及到按位運算 - 如果這甚至是正確的術語 - 並且正在尋找一種更好的方法來執行邏輯整型返回碼(這是各種Unix程序的標準)。即返回代碼可能是1,2,4,8任意組合等 這裏是我的代碼(片段),到目前爲止: [...] if (result == 0) //no problem else { if ((result > 127) && (result % 1

    -2熱度

    1回答

    #include <stdlib.h> #include <sys/wait.h> #include <unistd.h> #include <stdio.h> int main() { pid_t pid; int status = -1; if ((pid = fork()) != 0) { printf("Father process

    0熱度

    1回答

    我有下面的代碼,但我需要exit(status)返回一個浮點數,但WEXITSTATUS沒有收到浮點數原因狀態必須是int,那麼請問有什麼解決方案? scanf("%f%f",&f,&g); P = fork(); if(P == 0){ printf("\nje suis le fils multiplication: PID = %d\n", getpid

    0熱度

    1回答

    我只能說一點英語,所以我希望你能理解我說的話。 我fork了一個子進程,然後我在子進程中做ADD。 EX:56 + 48 = 104 如果值低於255,我可以使用「wexitstatus(status)」來獲得答案。 但是,如果值高於256,那就錯了! 我該怎麼辦?

    1熱度

    3回答

    我有下面的幫助函數,用於執行命令並獲取posix系統上的返回值。我曾經使用popen,但如果它運行並且在popen/pclose有機會完成其工作之前退出,則無法獲得應用程序的返回碼popen。 以下幫助函數創建一個進程分叉,使用execvp運行所需的外部進程,然後父代使用waitpid獲取返回碼。我看到它拒絕運行的奇怪情況。 當用wait = true調用時,waitpid應該返回應用程序的退出代