-
- очень просто. вкаждом процессе что зачат ядром рождаются три файла с дескрипторами 0, 1 и 2 - это stdin stdout и stderr. как известно это внутри процесса они 0 1 2, но на самом деле они есть обычные символьные файлы в FS и доступны с наружи. для доступа к ним снаружи нужно знать где они располагаются чтоб их открить и записать в них - для этого нужно знать PID процесса расщарить выввод-вывод которого хочется. klen(269 знак., 22.08.2024 18:36, картинка)
- Там надо продумать что-то закрыть, а что-то оставить. IN одного будет OUT другого. Costic(406 знак., 16.08.2024 12:16, ссылка)
- Тэкс, непонятки. Точнее - хотелось бы помощи в понимании кухни: есть stdout и fopen(), fclose() с работой по указателю на файловую структуру; а есть STDOUT_FILENO и функции open(), close() с работой по номерам дескрипторов. Вот printf(), который аналог fprintf( stdout, ...). Как переводится из одного в другое FILE * в int или наоборот? - Dingo(16.08.2024 11:46)
- tee? - Vit(16.08.2024 07:49)
- Ну, это в шелле. А в программе? - Dingo(16.08.2024 10:00)
- int fileno(FILE *stream); fileno - obtain file descriptor of a
stdio stream Costic(1 знак., 16.08.2024 12:08, ссылка)
- fileno(stdout) == STDOUT_FILENO == 1 - SciFi(16.08.2024 12:26)
- Батник. - Cкpипaч(16.08.2024 12:05)
- Можно подсмотреть >>> SciFi(1 знак., 16.08.2024 10:02, ссылка)
- int fileno(FILE *stream); fileno - obtain file descriptor of a
stdio stream Costic(1 знак., 16.08.2024 12:08, ссылка)
- Ну, это в шелле. А в программе? - Dingo(16.08.2024 10:00)