Я делаю свою собственную версию make. Я допускаю, чтобы некоторые аргументы передавались через командную строку.Не печатать за пределами if statement
Я работаю над ним в кусках. Я устанавливаю FileName прямо сейчас
Я следующий код
int main(int argc, char *argv[]) {
char *fileName = NULL;
char fileFlag[2];
strcpy(fileFlag, "-f");
printf("%s\n", fileFlag);
if (argc == 1) {
fileName = (char *) malloc(sizeof("Makefile"));
strcpy(fileName, "Makefile");
printf("One arg %s\n", fileName);
}
printf("\n%s", fileName);
return 0;
}
Когда он работает, я получаю следующий вывод.
-f
One arg Makefile
Нельзя ли напечатать еще одну строку?
'fileFlag' недостаточно велик, чтобы содержать два символа и терминатор nul. – Riley
Извините, не так ли было о 'sizeof (« Makefile »)' ... Удивительно, что он возвращает длину строки, включая терминатор. –
Но мне интересно, почему строковый литерал будет интерпретироваться как массив в этом случае ... –