system()
SunOS で (C で) 関数呼び出しを行う方法を理解しようとしていますが、stderr (または stdout) には何も出力されません。現在、次のコードは Linux、OSX、HP-UX、および SunOS でコンパイル/実行されます。SunOS 以外のすべてで、次のような素晴らしい出力が得られます。
i = 32512 (0x7f00); wexitstatus = 127
しかし、SunOS では次のようになります。
sh: unknowncommand: not found
i = 256 (0x100); wexitstatus = 1
...その余分な「sh:」行は迷惑です:)
(私の目標: "cc" および/または "gcc" コマンドを実行できるかどうかを、プログラムによって静かに決定します。)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/wait.h>
int main (int argc, char **argv)
{
int i;
char buf [1000];
strcpy (buf, "unknowncommand -c foo.c > /dev/null 2>&1");
i = system (buf);
printf ("i = %d (0x%x); wexitstatus = %d\n", i, i, WEXITSTATUS (i));
return 0;
}