命令返回正常退出代码
- /* Exit with a status code indicating success.
- Copyright (C) 1999-2020 Free Software Foundation, Inc.
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program. If not, see
. */ -
- #include
- #include
- #include
- #include "system.h"
-
- /* Act like "true" by default; false.c overrides this. */
- #ifndef EXIT_STATUS
- # define EXIT_STATUS EXIT_SUCCESS
- #endif
-
- #if EXIT_STATUS == EXIT_SUCCESS
- # define PROGRAM_NAME "true"
- #else
- # define PROGRAM_NAME "false"
- #endif
-
- #define AUTHORS proper_name ("Jim Meyering")
-
- /* 用法函数 */
- void
- usage (int status)
- {
- printf (_("\
- Usage: %s [ignored command line arguments]\n\
- or: %s OPTION\n\
- "),
- program_name, program_name);
- printf ("%s\n\n",
- _(EXIT_STATUS == EXIT_SUCCESS
- ? N_("Exit with a status code indicating success.")
- : N_("Exit with a status code indicating failure.")));
- fputs (HELP_OPTION_DESCRIPTION, stdout);
- fputs (VERSION_OPTION_DESCRIPTION, stdout);
- printf (USAGE_BUILTIN_WARNING, PROGRAM_NAME);
- emit_ancillary_info (PROGRAM_NAME);
- exit (status);
- }
-
- int
- main (int argc, char **argv)
- {
- /* Recognize --help or --version only if it's the only command-line
- argument. */
- /* 命令有传入选项时,才进入该if */
- if (argc == 2)
- {
- /* 初始化 */
- initialize_main (&argc, &argv);
- set_program_name (argv[0]);
- setlocale (LC_ALL, "");
- bindtextdomain (PACKAGE, LOCALEDIR);
- textdomain (PACKAGE);
-
- /* Note true(1) will return EXIT_FAILURE in the
- edge case where writes fail with GNU specific options. */
- atexit (close_stdout);
-
- /* 用法函数 */
- if (STREQ (argv[1], "--help"))
- usage (EXIT_STATUS);
-
- /* 版本信息等 */
- if (STREQ (argv[1], "--version"))
- version_etc (stdout, PROGRAM_NAME, PACKAGE_NAME, Version, AUTHORS,
- (char *) NULL);
- }
- /* 没有传入选项时,直接返回EXIT_STATUS正常退出代码 */
- return EXIT_STATUS;
- }