如何通过命令行选项调用程序?

时间:2018-10-08 17:34:05

标签: c getopt

我有一个名为make的程序,可以通过命令行选项进行调用:

make  [command-line-options]  [targetname]

这些选项是:

-C目录名:在开始执行之前,make将目录更改为指示的目录。

-f文件名:make从指定的文件中读取其规范,而不是从默认的makefile中读取其规范。

-i:忽略未成功终止动作;即使失败,也要继续执行目标的动作。

-n:在执行之前,先打印(到stdout)每个shell命令序列,但实际上不执行命令。

-p:读入规范文件后,将其信息打印到stdout。然后成功退出。

-s:以静默方式执行,不要在执行每个shell命令序列之前将其打印出来。

如何使用getopt()chdir()exit()的调用来实现?

下面是我到目前为止完成的代码:

#include <stdio.h>
#include <stdbool.h>
#include <unistd.h>
#include <stdlib.h>
#include <getopt.h>

#define bake

int main(int argc, char *argv[])
{
        int     opt;
        string  sDirectory;

        opterr = 0;
        while (opt = getopt(argc, argv, bake)) != -1)
                switch(opt)
                        {
                        case '-c':
                                int rc = chdir(sDirectory.c_str());
                                break;
                        case '-f':

                                break;
                        case '-i':
                                clean:
                                        -rm -f *.o;
                                        break;
                        case '-n':

                                break;
                        case '-p':

                                break;
                        case '-s':
                                break;
                }
        if (argv < 0) {
                fprintf(stderr, "file: #s [-d] [progname] failed", progname);
                exit(EXIT_FAILURE);
        }
        return 0;

0 个答案:

没有答案