C中的错误参数处理:“预期”+ str(状态)+“得到”+ str(child.returncode))“

时间:2013-09-17 00:55:45

标签: python c file file-io exception-handling

我有以下代码:

while ((c = getopt(argc, argv, "i:o:")) != -1) {
    switch (c) {

    case 'i':
        inFile = strdup(optarg);
        break;
    case 'o':
        outFile = strdup(optarg);
        break;
    default:

        //usage(argv[0]);
        //error_usage(argv[0]);
        {
            fprintf(stderr, "usage: %s <-i input file> <-o output file>\n", argv[0]);
            exit(EXIT_FAILURE);

        }

    }
 }

被送到像这样运行的程序: ./program -i inFile -o outFile

但是测试我程序的程序(不是我写的)给了我这个错误: Expected " + str(status) + " got " + str(child.returncode))

你知道我应该如何处理不好的论据而不是我上面所做的事情?请给我一个代码片段,而不仅仅是单词,因为如果没有代码,我很难弄明白。

1 个答案:

答案 0 :(得分:0)

这里的问题似乎与测试程序有关,而不是代码;它没有传递正确的参数(或以错误的方式传递正确的参数),然后当你的程序告诉它错误的时候让所有人烦恼。

将错误打印到stderr并返回EXIT_FAILURE被认为是处理错误参数的“正确”方法,否则如果你将一个程序的输出传输到另一个程序中,如下所示:

ls --cookies! | sed 's/[.].*//'

并且ls假装没有出错,sed将按预期处理使用信息而不是目录内容。