мне в программе нужно завернуть stdin/stdout в дескриптор чтобы через него можно было полноценно делать read/write, подскажите какой алгоритм действий?
> мне в программе нужно завернуть stdin/stdout в дескриптор чтобы через него можно
> было полноценно делать read/write, подскажите какой алгоритм действий?мб через unix socket + thread на обработку данных?
>> мне в программе нужно завернуть stdin/stdout в дескриптор чтобы через него можно
>> было полноценно делать read/write, подскажите какой алгоритм действий?
> мб через unix socket + thread на обработку данных?или, может, mkfifo
> мне в программе нужно завернуть stdin/stdout в дескриптор чтобы через него можно
> было полноценно делать read/write, подскажите какой алгоритм действий?socat так не делает.
Если ты имеешь в виду "bidirectional pipe", то Linux так не делает. man 7 pipe. Можно в BSD.Вообще толком объясни, что ты хочешь. Походу, ни разу не дескриптор (чего?).
>> мне в программе нужно завернуть stdin/stdout в дескриптор чтобы через него можно
>> было полноценно делать read/write, подскажите какой алгоритм действий?
> socat так не делает.
> Если ты имеешь в виду "bidirectional pipe", то Linux так не делает.
> man 7 pipe. Можно в BSD.
> Вообще толком объясни, что ты хочешь. Походу, ни разу не дескриптор (чего?).завернуть stdio/stdout в один дескриптор rw как?
>>> мне в программе нужно завернуть stdin/stdout в дескриптор чтобы через него можно
>>> было полноценно делать read/write, подскажите какой алгоритм действий?
>> socat так не делает.
>> Если ты имеешь в виду "bidirectional pipe", то Linux так не делает.
>> man 7 pipe. Можно в BSD.
>> Вообще толком объясни, что ты хочешь. Походу, ни разу не дескриптор (чего?).
> завернуть stdio/stdout в один дескриптор rw как?
>>>> мне в программе нужно завернуть stdin/stdout в дескриптор чтобы через него можно
>>>> было полноценно делать read/write, подскажите какой алгоритм действий?
>>> socat так не делает.
>>> Если ты имеешь в виду "bidirectional pipe", то Linux так не делает.
>>> man 7 pipe. Можно в BSD.
>>> Вообще толком объясни, что ты хочешь. Походу, ни разу не дескриптор (чего?).
>> завернуть stdio/stdout в один дескриптор rw как?
> https://man7.org/linux/man-pages/man3/stdout.3.htmlмне нужно !два! десткриптора stdin и stdout завернуть в один дескриптор, где там в вашем мане это?
...> мне нужно !два! десткриптора stdin и stdout завернуть в один дескриптор, ...
или в ядро ОС, лезть или прослойку(слой абстракции) в прилжении писать на механизмом опроса(select, kqueue, etc.)
>>>>> мне в программе нужно завернуть stdin/stdout в дескриптор чтобы через него можно
>>>>> было полноценно делать read/write, подскажите какой алгоритм действий?
>>>> socat так не делает.
>>>> Если ты имеешь в виду "bidirectional pipe", то Linux так не делает.
>>>> man 7 pipe. Можно в BSD.
>>>> Вообще толком объясни, что ты хочешь. Походу, ни разу не дескриптор (чего?).
>>> завернуть stdio/stdout в один дескриптор rw как?
>> https://man7.org/linux/man-pages/man3/stdout.3.html
> мне нужно !два! десткриптора stdin и stdout завернуть в один дескриптор, где
> там в вашем мане это?тебе уже написали в первом посте. создаёшь дескриптор, на удобном механизме межпроцессорного взаимодействия (в общем случае unix socket), пишешь/читаешь в/из него. на другом конце перенаправляешь.
другой конец - варианты приседаний:
- select stdin/socket в своём процессе с таймаутом
- select stdin/socket в thread или fork
- 2 thread или 2 fork - раздельно stdin и socketперенаправление:
- read socket -> write stdout
- read stdin -> write socket
> тебе уже написали в первом посте. создаёшь дескриптор, на удобном механизме межпроцессорного
> взаимодействия (в общем случае unix socket), пишешь/читаешь в/из него. на другом
> конце перенаправляешь.с ручной обработкой в потоке и так было понятно, просто было интересно может быть можно было сделать такое - типа создать свой дексриптор, переопределить ему read/write и отдать его.
>> тебе уже написали в первом посте. создаёшь дескриптор, на удобном механизме межпроцессорного
>> взаимодействия (в общем случае unix socket), пишешь/читаешь в/из него. на другом
>> конце перенаправляешь.
> с ручной обработкой в потоке и так было понятно, просто было интересно
> может быть можно было сделать такое - типа создать свой дексриптор,
> переопределить ему read/write и отдать его.в принципе, наверно такой механизм мог бы существовать - объединение 2х pipe дескрипторов в одну обструкцию. но мне кажется это слишком просто/узко. а если кому-то нужно клонировать запись в 2 пайпа и читать из одного? вариантов море.
если я правильно понял. тебе бы мысли формулировать чётче, потому что
> создать свой дексриптор, переопределить ему read/write и отдать егопонять не просто
>>>>> мне в программе нужно завернуть stdin/stdout в дескриптор чтобы через него можно
>>>>> было полноценно делать read/write, подскажите какой алгоритм действий?
>>>> socat так не делает.
>>>> Если ты имеешь в виду "bidirectional pipe", то Linux так не делает.
>>>> man 7 pipe. Можно в BSD.
>>>> Вообще толком объясни, что ты хочешь. Походу, ни разу не дескриптор (чего?).
>>> завернуть stdio/stdout в один дескриптор rw как?
>> https://man7.org/linux/man-pages/man3/stdout.3.html
> мне нужно !два! десткриптора stdin и stdout завернуть в один дескриптор, где
> там в вашем мане это?тебе нужно забыть про програмирование и про компуктеры вообще и полностью
тебе нужно найти работу грузчиком в пятёрочке или гдето там
>[оверквотинг удален]
>>>>> socat так не делает.
>>>>> Если ты имеешь в виду "bidirectional pipe", то Linux так не делает.
>>>>> man 7 pipe. Можно в BSD.
>>>>> Вообще толком объясни, что ты хочешь. Походу, ни разу не дескриптор (чего?).
>>>> завернуть stdio/stdout в один дескриптор rw как?
>>> https://man7.org/linux/man-pages/man3/stdout.3.html
>> мне нужно !два! десткриптора stdin и stdout завернуть в один дескриптор, где
>> там в вашем мане это?
> тебе нужно забыть про програмирование и про компуктеры вообще и полностью
> тебе нужно найти работу грузчиком в пятёрочке или гдето тампо вашему тону и знаниям вы сами давно в грузчиках батрачите
> давно в грузчиках батрачитеmkfifo -m 666 3; 2>&1 > 3;
Открывай 3, чем хошь и делать read/write
>> давно в грузчиках батрачите
> mkfifo -m 666 3; 2>&1 > 3;
> Открывай 3, чем хошь и делать read/writeа вот и нет! только unix socket, потому что именно асинхронное read/write
> мне в программе нужно завернуть stdin/stdout в дескриптор чтобы через него можно
> было полноценно делать read/write, подскажите какой алгоритм действий?https://www.opennet.ru/man.shtml?topic=dup2
сюда попробуй