int main(int argc, char* argv[])
{
int fd, index = 1;
if (argc > 1) {
if (close(STDIN_FILENO) == -1) {
perror("Error printed by perror");
}
fd = open(argv[index], O_RDONLY);
}
Приведенный выше код работает нормально, и я могу читать из файла после слов
, но если изменить его на следующее:
int main(int argc, char* argv[])
{
int fd, index = 1;
fd = open(argv[index], O_RDONLY);
}
Он перестает работать, и когда я пытаюсьдля чтения файла ничего не происходит, и программы остаются в ожидании. В тестовой книге, которую я использую, они не должны были закрывать STDIN_FILENO. Есть идеи о том, что происходит?