Если я знаю, что входные данные для моей программы будут поступать из файлового дескриптора с (нестандартным) идентификатором, как мне с него читать?
Например, если мне нужно прочитать из файлового дескрипторас идентификатором 3, как мне это сделать?
Кроме того, есть ли простой способ проверить это в BASH без необходимости создания другой программы и конвейера?
Это то, что я получил до сих пор:
char buffer[100];
FILE* fd = fdopen(3, "r");
fgets(buffer, sizeof buffer, fd);
sscanf(buffer, "%d", &whatever);
Он компилируется, но при запуске выдает ошибку сегментации.Я посмотрел на него в GDB, и он застрял на Fgets, так что я думаю, что я делаю что-то не так?Возможно, из-за отсутствия конца файла, входящего в файловый дескриптор 3, когда я тестирую (опять же, было бы неплохо, если бы я мог правильно проверить это в BASH).