Process.h的spawn回傳1992代表什麼意思?

各位大大: 在下剛接觸spawn, 寫了兩個城市進行測試 // a.cpp #include #include int m ain(int argc, char* argv[]){ int r=spawnv(P_NOWAIT, "./c.exe", argv); printf("%d ", r); return 0; } // c.cpp #include int main(int argc, char* argv[]){ long endwait=clock()+2000L; while(clock() return 0; } a.cpp和c.cpp各產生a.exe,... show more 各位大大:

在下剛接觸spawn, 寫了兩個城市進行測試

// a.cpp
#include
#include
int m ain(int argc, char* argv[]){
int r=spawnv(P_NOWAIT, "./c.exe", argv);
printf("%d ", r);
return 0;
}

// c.cpp
#include
int main(int argc, char* argv[]){
long endwait=clock()+2000L;
while(clock()
return 0;
}

a.cpp和c.cpp各產生a.exe, c.exe在同目錄下

使用command line 執行,發現結果為1992

%`cpp以Sleep(2000)改寫結果相同

請問1992有何意義?或如何修改可以使它回傳0?

(在下用Dev-C++編譯)

3Q
Update: 先感謝Jacob Lee大指點

請問Jacob Lee或其他大大

用什麼方法可利用此handle檢查該process的狀態

(NEW, READY, RUNNING, WAITING, TERMINATED)

以及終止它?知道的大大可直接寫在回答~3Q
Update 2: 非常感謝Jacob Lee大的協助
若您願意,在下建議把這些資料放進回答
因為1992代表handle已經有回答到當初發問時候的問題點
Update 3: Jacob Lee大:
意見中您說無GetPid(HND)
但process.h裡有getpid()且出現於回答code
那請問它所給的是何者的pid? (parent/child)
且觀察這些code, 想終止process
是否就用getpid(標準process.h)配合非標準MSDN?
Update 4: 那麼綜合之前內容:
(1) spawn傳回HND; getpid(uoid)傳回自己的pid (pid_t)
(2) TerminateProcess可直接以spawn所得HND來終止
(3) GetProcInfo可從HND轉pid,實現DevCpp沒有的getpid(H...
及取得其他相關資料
這樣的結論有沒有符合所有回答與意見?
希望往後參考者能從這些結論快速理解這題問答內容
1 answer 1