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 才是基本功。
張貼留言

[Linux] Private Key 不能登入的除錯方法與可能的問題點

最簡單的除錯方法是 $ ssh HOST -v 可能的問題點有: File/Dir Permission # 目錄是 700, 檔案是 600 Server 設定 RSAAuthentication yes PubkeyAuthentication yes...