zoukankan      html  css  js  c++  java
  • PostgreSQL的 initdb 源代码分析之二

    继续分析

    下面这一段,当 initdb --version 或者  initdb --help 才有意义。

        if (argc > 1)
        {
    
            if (strcmp(argv[1], "--help") == 0 || strcmp(argv[1], "-?") == 0)
            {
                usage(progname);
                exit(0);
            }
            if (strcmp(argv[1], "--version") == 0 || strcmp(argv[1], "-V") == 0)
            {
                puts("initdb (PostgreSQL) " PG_VERSION);
                exit(0);
            }
        }

    再看下一段:

    实际上就是 initdb 运行时候,后面可以跟各种参数。我这里只考虑 -D那种就好了

        /* process command-line options */
        while ((c = getopt_long(argc, argv, "dD:E:L:nU:WA:sT:X:", long_options, &option_index)) != -1)
        {
            switch (c)
            {
                case 'A':
                    authmethod = xstrdup(optarg);
                    break;
                case 'D':
                    pg_data = xstrdup(optarg);
                    break;
                case 'E':
                    encoding = xstrdup(optarg);
                    break;
                case 'W':
                    pwprompt = true;
                    break;
                case 'U':
                    username = xstrdup(optarg);
                    break;
                case 'd':
                    debug = true;
                    printf(_("Running in debug mode.
    "));
                    break;
                case 'n':
                    noclean = true;
                    printf(_("Running in noclean mode.  Mistakes will not be cleaned up.
    "));
                    break;
                case 'L':
                    share_path = xstrdup(optarg);
                    break;
                case 1:
                    locale = xstrdup(optarg);
                    break;
                case 2:
                    lc_collate = xstrdup(optarg);
                    break;
                case 3:
                    lc_ctype = xstrdup(optarg);
                    break;
                case 4:
                    lc_monetary = xstrdup(optarg);
                    break;
                case 5:
                    lc_numeric = xstrdup(optarg);
                    break;
                case 6:
                    lc_time = xstrdup(optarg);
                    break;
                case 7:
                    lc_messages = xstrdup(optarg);
                    break;
                case 8:
                    locale = "C";
                    break;
                case 9:
                    pwfilename = xstrdup(optarg);
                    break;
                case 's':
                    show_setting = true;
                    break;
                case 'T':
                    default_text_search_config = xstrdup(optarg);
                    break;
                case 'X':
                    xlog_dir = xstrdup(optarg);
                    break;
                default:
                    /* getopt_long already emitted a complaint */
                    fprintf(stderr, _("Try "%s --help" for more information.
    "),
                            progname);
                    exit(1);
            }
        }

    也就是这段:

                case 'D':
                    pg_data = xstrdup(optarg);
                    break;
  • 相关阅读:
    Android 使用Application总结
    android数据保存
    Android 利用Application对象存取公共数据
    android 通过post方式提交数据的最简便有效的方法
    android http协议post请求方式
    maven下载及配置
    普通的101键盘在Mac上的键位对应
    高效使用你的Xcode
    maven安装及maven项目导入流程
    Mac键盘图标与对应快捷按键标志汇总
  • 原文地址:https://www.cnblogs.com/gaojian/p/3173833.html
Copyright © 2011-2022 走看看