2009/04/14

[Programming] system 正確的抓取 return value

錯誤的抓法

#include <stdlib.h>

int main (void)
{
int ret;

ret = system("error: command not found");

return ret;
}


看一下 system 是怎麼寫的,就可以知道為什麼 ret 不一定是你想要的答案了。
這是正確的做法:
#define _GNU_SOURCE
#include <stdlib.h>

int main (void)
{
int ret;

ret = system("error: command not found");

if (WIFEXITED(ret))
return WEXITSTATUS(ret);
else
return -1;
}


// 以上不是我寫的,是公司裡的 eric 學長教的,看 code 才是基本功。

沒有留言:

[Windows] git-bash 底下的工具

因為工作轉到 Windows 平台上的關係,所以很多工具改到 Windows 上面運作,跟著在 TortoiseGit 底下使用 git-bash 來維護自己的專案原始碼。結果就是裝了前面提過的 auto-hotkey 使用熱鍵來提昇自己的平台操作速度; 但除了 hotkey...