[問題] system return value
開發平台(Platform): (Ex: Win10, Linux, ...)
linux
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
gcc / g++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
no
問題(Question):
一些原因,我必須取得某個執行檔的 return code,
即 echo $? 之值 但就是不想用 echo $? 去 pipe。
我查過了 cplusepluse.com 對 system 之說明,沒
意會錯的話應是說若呼叫該 command 失敗傳回 -1;
呼叫成功的話會是該 exe / library 之傳回值,
也就是 main 的傳回值。於是我寫了二份 code 做測試
/// code 1 : test.cpp
int main(int argc, char **argv) {
return argc;
}
/// code 2 : test2.cpp
#include <cstdio>
#include <cstdlib>
int main(int argc, char ** argv) {
printf("%d\n", system(".....ERRORCMD...."));
printf("%d\n", system("./test"));
printf("%d\n", system("./test 1"));
printf("%d\n", system("./test 1 2"));
return 0;
}
/// result
32512
256
512
768
這幾個數值看起來是用 bitwise 代表 status,
但和我預期傳回的
-1
1
2
3
有很大的落差 ,請問我是不是誤會什麼了?問題主要二個
(1) 不用 pipe 如何取得另一個執行檔之 return value ?
(2) 請問 system 之 return value 意義為何 ??-
先謝謝各位的不吝解惑。
--
就算把新鮮的肝拿回去,還是一樣寫碼到禿頭,加班到天亮,
永遠當老闆的傀儡 你是不是想這麼做?
是的話你就拿回去~ 拿啊!!
九世宅男 : 下輩子不要再讓我幹工程師了 ~
< Kuso 星爺語錄 >
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.92.140
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1478689043.A.86D.html
※ 編輯: EdisonX (60.251.92.140), 11/09/2016 18:59:15
→
11/09 19:11, , 1F
11/09 19:11, 1F
→
11/09 19:12, , 2F
11/09 19:12, 2F
→
11/09 19:13, , 3F
11/09 19:13, 3F
推
11/09 19:14, , 4F
11/09 19:14, 4F
→
11/09 19:14, , 5F
11/09 19:14, 5F
→
11/09 19:15, , 6F
11/09 19:15, 6F
→
11/09 19:15, , 7F
11/09 19:15, 7F
→
11/09 19:15, , 8F
11/09 19:15, 8F
→
11/09 19:19, , 9F
11/09 19:19, 9F
→
11/09 19:25, , 10F
11/09 19:25, 10F
→
11/09 19:25, , 11F
11/09 19:25, 11F
→
11/10 00:19, , 12F
11/10 00:19, 12F
→
11/10 00:19, , 13F
11/10 00:19, 13F
→
11/10 01:00, , 14F
11/10 01:00, 14F
→
11/10 01:01, , 15F
11/10 01:01, 15F
→
11/10 01:02, , 16F
11/10 01:02, 16F
→
11/10 01:50, , 17F
11/10 01:50, 17F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章