GNU getopt optarg null

时间:2016-03-08 02:47:32

标签: c getopts

为了理解如何使用getopt,我使用了gnus manual example中的示例。我把它减少到我感兴趣的情况,如下所述:

#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main (int argc, char **argv)
{
  char *cvalue = NULL;
  int c;

  while ((c = getopt (argc, argv, "c")) != -1)
    switch (c)
      {
      case 'c':
        cvalue = optarg;
        break;
      }

  printf ("cvalue = %s\n", cvalue);

  return 0;
}

如您所见,我只对示例案例'$(testopt -c foo)'感兴趣。现在,在尝试执行上述操作时,我的'optarg'是(null)。 为什么??或者更好;我该如何解决这个问题?

0 个答案:

没有答案