aax*_*aax 3 c macos centos getopt
我在 OSX 和 CentOS 上通过 gcc 编译相同的代码:
while (( opt = getopt (argc, argv, "hp:" )) != -1 )
{
fprintf (stderr,"+++++++++++ %d\n\n", opt );
switch ( opt )
{
case 'h':
fprintf(stderr, "Help Page \n %s", help_str);
return 1;
case 'p':
filename = optarg ;
fprintf(stderr,"================== %s\n",optarg);
break;
case '?':
printf("ZHZHZHZHZHUT\n");
return 3;
default:
break;
}
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试运行./a.out -p ./file.txt ya.ru,./a.out ya.ru -p ./file.txt
在 CentOS 6.5 上,两个变体都可以工作。
但在 MAC OS X(10.9) 变体上./a.out ya.ru -p ./file.txt(从属参数之前的自由参数)不起作用。
-p和/file.txt用作简单参数(不是由getopt)。
完整代码在这里
谢谢。