看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 問題(Question): VC++沒有內建的unistd和sys/wait.h 預期的正確結果(Expected Output): 看到書上介紹的fork用法 錯誤結果(Wrong Output): 'wait.h': No such file or directory 程式碼(Code):(請善用置底文網頁, 記得排版) #include <sys/types.h> #include <stdio.h> #include <unistd.h> #include <wait.h> int main() { pid_t pid; pid = fork(); if(pid < 0) { fprintf(stderr, "Fork Failed"); return 1; } else if (pid == 0) { execlp("/bin/ls","ls",NULL); } else { wait(NULL); printf("Child Complete"); } return 0; } 補充說明(Supplement): 書上沒有sys/wait.h這一項 不加的話wait無法識別 但是查了一下卻也是linux上的指令 而unistd是看了網路上的解決方法處理(自己定義header) 目前還沒compile過所以不知道有沒有問題 煩請解答 感恩! 謝謝各位的解答 /var/tmp//ccYqIclx.o(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' 用學校的工作站跑變成這樣子了 0.0 再次請問一下.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.90.83
james732:想辦法裝linux來執行吧 10/18 13:58
priv:你換環境吧 10/18 13:59
priv:VC++ fork就不能執行了還有什麼好玩的 10/18 13:59
priv:你就算把header補齊也沒用.. 10/18 13:59
angleevil:那個是linux的東西. 10/18 14:11
priv:如果一定要win,cygwin可以勉強用一下 10/18 14:21
※ 編輯: devil115789 來自: 140.113.90.83 (10/18 14:29) ※ 編輯: devil115789 來自: 140.113.90.83 (10/18 14:29)
angleevil:其實用code block就可以 10/18 14:30
james732:你的程式我可以正確執行耶...XD 10/18 14:32
devil115789:所以為什麼會這樣子Q_Q 10/18 14:33
james732:你是用什麼指令編譯的?我用 gcc 沒問題 10/18 14:34
angleevil:...樓上,那是因為那個是gnu就有的include阿.vc沒有阿 10/18 14:41
james732:他說用學校工作站跑出undefined reference 10/18 14:43
james732:不過我也不知道他工作站是什麼系統、編譯指令是什麼... 10/18 14:43
angleevil:這下問題大了,工作站也不是說換就換. 10/18 14:56
devil115789:我是用gcc編的 其他人跑好像沒什麼問題... 10/18 15:38
shadow0326:我猜你副檔名用.cpp而不是.c 10/18 15:43
james732:樓上應該說中了,我副檔名cpp,用gcc編譯,出現同樣訊息 10/18 15:44
james732:原po可以把副檔名改成.c,或者改用g++編譯 10/18 15:45
angleevil:~"~難怪有顯示__gxx_personality_v0 10/18 15:48
devil115789:對了耶!!我直接移過去沒注意到..謝謝^^ 10/18 15:57