• 解析命令行参数

      1. /*
      2. * 解析命令行参数
      3. * getopt函数
      4. */
      5. while ((iError = getopt(argc, argv, "ls:f:h:d:")) != -1) /* 将命令行参数与所有可能的参数进行匹配 */
      6. {
      7. switch(iError)
      8. {
      9. case 'l':
      10. {
      11. bList = 1;
      12. break;
      13. }
      14. case 's':
      15. {
      16. dwFontSize = strtoul(optarg, NULL, 0);
      17. break;
      18. }
      19. case 'f':
      20. {
      21. strncpy(acFreetypeFile, optarg, 128);
      22. acFreetypeFile[127] = '\0';
      23. break;
      24. }
      25. case 'h':
      26. {
      27. strncpy(acHzkFile, optarg, 128);
      28. acHzkFile[127] = '\0';
      29. break;
      30. }
      31. case 'd':
      32. {
      33. strncpy(acDisplay, optarg, 128);
      34. acDisplay[127] = '\0';
      35. break;
      36. }
      37. default:
      38. {
      39. printf("Usage: %s [-s Size] [-d display] [-f font_file] [-h HZK] <text_file>\n", argv[0]);
      40. printf("Usage: %s -l\n", argv[0]);
      41. return -1;
      42. break;
      43. }
      44. }
      45. }
      46. /* 当选项无额外参数而输入了额外参数时,提示用法并退出程序 */
      47. if (!bList && (optind >= argc))
      48. {
      49. printf("Usage: %s [-s Size] [-d display] [-f font_file] [-h HZK] <text_file>\n", argv[0]);
      50. printf("Usage: %s -l\n", argv[0]);
      51. return -1;
      52. }