printf ("aflag = %d, bflag = %d, cvalue = %s\n", aflag, bflag, cvalue);
printf ("aflag = %d, bflag = %d, cvalue = %s, Cflags = %d, nflag = %d\n", aflag, bflag, cvalue, Cflag, nflag);  result |= (aflag != 1 || bflag != 1 || cvalue == NULL || strcmp (cvalue, "foobar") != 0 || Cflag != 3 || nflag != 1);
main (int argc, char **argv){  static const struct option options[] =    {      {"required", required_argument, NULL, 'r'},      {"optional", optional_argument, NULL, 'o'},      {"none",     no_argument,       NULL, 'n'},      {NULL,       0,                 NULL, 0 }    };  int aflag = 0;  int bflag = 0;  char *cvalue = NULL;  int index;  int c;  while ((c = getopt_long (argc, argv, "abc:", options, NULL)) >= 0)    switch (c)      {      case 'a':	aflag = 1;	break;      case 'b':	bflag = 1;	break;      case 'c':	cvalue = optarg;	break;      case '?':	fputs ("Unknown option.\n", stderr);	return 1;      default:	fprintf (stderr, "This should never happen!\n");	return 1;      case 'r':	printf ("--required %s\n", optarg);	break;      case 'o':	printf ("--optional %s\n", optarg);	break;      case 'n':	puts ("--none");	break;      }  printf ("aflag = %d, bflag = %d, cvalue = %s\n", aflag, bflag, cvalue);  for (index = optind; index < argc; index++)    printf ("Non-option argument %s\n", argv[index]);  return 0;}