Странно с функцией main () в C - PullRequest
0 голосов
/ 22 сентября 2011

Когда я пытаюсь передать параметры в функцию main () в C, я всегда могу получить только 1 параметр (а argc всегда равен 1, имя программы).Моя программа хорошо скомпилирована в gcc.

#include <stdio.h>
#include <string.h>

#include "chkin.h"
#include "sort.h"
#include "display.h"

int main(int argc, char* argv[])
{
    if(1 == chkin(argc, argv))
        return 0;

    if(strcmp("sort", argv[1]));
        sort(argc, argv);

    if(strcmp("display", argv[1]));
        display(argc, argv);

    return 0;
}

и мой запятая: ./program sort tfile.txt.В чем будет проблема?

Ответы [ 2 ]

1 голос
/ 22 сентября 2011

GDB (основываясь на вашем комментарии к @Jack) будет читать только первый аргумент «программа».Если вы хотите запустить программу через GDB, вы должны попробовать:

gdb ./program
(gdb) r sort tfile.txt

Надеюсь, это поможет

0 голосов
/ 22 сентября 2011

Можете ли вы также показать код для чкин и показать? Скорее всего, проблема лежит там.

Кроме того, вы можете присоединить вашу программу к GDB и затем сказать "br main; r sort file.txt; p argv; p argc"

...