int source = open("hi", O_CREAT | O_RDONLY);
int dest = open("resultfile", O_CREAT | O_RDWR | O_TRUNC);
FILE* source1 = fdopen(source, "r");
FILE* dest1 = fdopen(dest, "w+");
// outside of a testcase I would write something into 'resultfile' here
close(source);
close(dest);
fclose(source1);
fclose(dest1);
int sourcef = open("resultfile", O_RDONLY);
printf(strerror(errno)); // <--- Bad file descriptor
Я не понимаю, почему?Как я могу успешно смешать потоковый ввод-вывод с open ()?
Библиотека, с которой я работаю, принимает только целое число fd (и библиотека несет внутреннюю ответственность за ее закрытие, предположительно с close ()), но мне все еще нужно работать с файломне понимаю, как это возможно без вызовов f (), таких как (fread (), ftell () и т. д.)