я же уже говорил, по дефолту он направлен на терминал, теперь его таргет меняется на другое место, в данном случае файл. может быть процесс или что-то еще
А если мы свой stdout передадим в другой процесс?
как я выше пример показывал с cmd.Exec
Через unix socket
напиши код, не очень тебя понимаю. если ты стдаут передаешь от одного процесса в другой, то это будет новый stdin для принимающего процесса, а не новый stdout, как это делают через папйпы обычно
stdin и stdout будет один и тот же fd по факту
дескриптор 1 в процессе А и дескриптор 1 в процессе Б будут указывать на разные вещи
С чего такая уверенность? Я открыл файл в /root и передал этот fd процессу который запущен от nobody. И он вполне сможет писать в этот файл.
может, но это не дескриптор процесса Б
https://blog.cloudflare.com/know-your-scm_rights/
> So how do you make two different processes, written in two different programming languages, share the same TCP socket?
SCM_RIGHTS Send or receive a set of open file descriptors from another process. The data portion contains an integer array of the file descriptors. The passed file descriptors behave as though they have been created with dup(2). Technically you do not send “file descriptors”. The “file descriptors” you handle in the code are simply indices into the processes' local file descriptor table, which in turn points into the OS' open file table, that finally points to the vnode representing the file. Thus the “file descriptor” observed by the other process will most likely have a different numeric value, despite pointing to the same file.
Файловые дискрипторы указывают на какую-то сущность в vfs. Ты зачем ты циклишься на файловых дискрипторах, а не сущностях на которые они указывают.
Всё правильно. Сокеты, пайпы, epoll, signalfd - это все сущности vfs. И умеет та или иная сущность fsync или там seek - зависит от того что эта сущность предоставила в struct file_operations
очевидно я не спорю с тем, что процессы могут писать в одну и ту же сущность в vfs, у нас речь то о дескрипторах была и они подвязаны на процессе так или иначе
Ну так весь спор вокруг того что именно скрывается за этим fd.
ну там много споров было, про разные имлементации flush, seek у fd, последний был конкретно о дескрипторах
Обсуждают сегодня