Java代碼:Java的返回碼不正確記錄與C++系統()調用
public class Test {
public static void main (String[] args) {
System.exit (4);
}
}
C++代碼:
#include <stdio.h>
#include <cstdlib>
int main() {
int result = system ("java Test");
printf ("Result: %d", result);
}
運行這個C++程序輸出
"Result: 1024"
如果我直接運行java程序,並檢查返回狀態的值使用bash的$?變量,我得到4:
> java Test
> echo $?
4
所以看來我誤解或濫用系統調用。
如何從system()調用中獲取「4」的返回值,而不是「1024」,以及「1024」是從哪裏來的?
謝謝!
http://www.cplusplus.com/reference/cstdlib/system/ –
從你的鏈接:「如果命令是不是一個空指針,返回的值取決於系統和庫實現,但它是如果支持,通常應該是被調用的命令返回的狀態碼。「 這就是我閱讀的內容,這讓我期待着我期待的行爲。我哪裏錯了? – JoshuaD
_depends在系統和庫實現_檢查您的庫實現。 –