Эта строка не будет работать:
strcat(str0,str1);
Это потому, что str1
не строка!Это один char
.Строки могут быть только символами-указателями или массивами символов.
И, как отмечали другие, str0
недостаточно велик, поэтому вы перезапишете память, что приведет к неопределенному поведению .
Если я могу дать альтернативное решение того, что вы пытаетесь сделать:
char str[100];
sprintf(str, "./home/systemio/Develop/getfile %c > file.txt", argv[1][0]);
printf("%s\n", str);
system(str);
Редактировать: Объяснение, почему я использую argv[1][0]
Причина в том, что эти две строки в вопросе:
char* strP = argv[1];
char str1 = (char)*strP;
Эти две строки получают первый символ из argv[1]
косвенным образом.Если вам нужно все argv[1]
, тогда мои sprintf
будут выглядеть так:
sprintf(str, "./home/systemio/Develop/getfile %s > file.txt", argv[1]);