The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
socat, как оно это делает?, !*! cods, 18-Авг-21, 14:13  [смотреть все]
мне в программе нужно завернуть stdin/stdout в дескриптор чтобы через него можно было полноценно делать read/write, подскажите какой алгоритм действий?
  • socat, как оно это делает?, !*! бородач, 16:56 , 19-Авг-21 (1)
    > мне в программе нужно завернуть stdin/stdout в дескриптор чтобы через него можно
    > было полноценно делать read/write, подскажите какой алгоритм действий?

    мб через unix socket + thread на обработку данных?

    • socat, как оно это делает?, !*! ., 01:11 , 21-Авг-21 (5)
      >> мне в программе нужно завернуть stdin/stdout в дескриптор чтобы через него можно
      >> было полноценно делать read/write, подскажите какой алгоритм действий?
      > мб через unix socket + thread на обработку данных?

      или, может, mkfifo

  • socat, как оно это делает?, !*! ACCA, 18:37 , 19-Авг-21 (2)
    > мне в программе нужно завернуть stdin/stdout в дескриптор чтобы через него можно
    > было полноценно делать read/write, подскажите какой алгоритм действий?

    socat так не делает.
    Если ты имеешь в виду "bidirectional pipe", то Linux так не делает. man 7 pipe. Можно в BSD.

    Вообще толком объясни, что ты хочешь. Походу, ни разу не дескриптор (чего?).

    • socat, как оно это делает?, !*! cods, 17:54 , 20-Авг-21 (3)
      >> мне в программе нужно завернуть stdin/stdout в дескриптор чтобы через него можно
      >> было полноценно делать read/write, подскажите какой алгоритм действий?
      > socat так не делает.
      > Если ты имеешь в виду "bidirectional pipe", то Linux так не делает.
      > man 7 pipe. Можно в BSD.
      > Вообще толком объясни, что ты хочешь. Походу, ни разу не дескриптор (чего?).

      завернуть stdio/stdout в один дескриптор rw как?


      • socat, как оно это делает?, !*! муу, 20:11 , 20-Авг-21 (4)
        >>> мне в программе нужно завернуть 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

        • socat, как оно это делает?, !*! cods, 01:57 , 21-Авг-21 (6)
          >>>> мне в программе нужно завернуть 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, как оно это делает?, !*! AnonymPatient, 09:33 , 21-Авг-21 (7)
            ...

            > мне нужно !два! десткриптора stdin и stdout завернуть в один дескриптор, ...

            или в ядро ОС, лезть или прослойку(слой абстракции) в прилжении писать на механизмом опроса(select, kqueue, etc.)


          • socat, как оно это делает?, !*! ., 11:01 , 21-Авг-21 (8)
            >>>>> мне в программе нужно завернуть 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

            • socat, как оно это делает?, !*! cods, 13:19 , 22-Авг-21 (12)
              > тебе уже написали в первом посте. создаёшь дескриптор, на удобном механизме межпроцессорного
              > взаимодействия (в общем случае unix socket), пишешь/читаешь в/из него. на другом
              > конце перенаправляешь.

              с ручной обработкой в потоке и так было понятно, просто было интересно может быть можно было сделать такое - типа создать свой дексриптор, переопределить ему read/write и отдать его.

              • socat, как оно это делает?, !*! ., 17:43 , 22-Авг-21 (13) +1
                >> тебе уже написали в первом посте. создаёшь дескриптор, на удобном механизме межпроцессорного
                >> взаимодействия (в общем случае unix socket), пишешь/читаешь в/из него. на другом
                >> конце перенаправляешь.
                > с ручной обработкой в потоке и так было понятно, просто было интересно
                > может быть можно было сделать такое - типа создать свой дексриптор,
                > переопределить ему read/write и отдать его.

                в принципе, наверно такой механизм мог бы существовать - объединение 2х pipe дескрипторов в одну обструкцию. но мне кажется это слишком просто/узко. а если кому-то нужно клонировать запись в 2 пайпа и читать из одного? вариантов море.

                если я правильно понял. тебе бы мысли формулировать чётче, потому что
                > создать свой дексриптор, переопределить ему read/write и отдать его

                понять не просто

          • socat, как оно это делает?, !*! муу, 20:09 , 21-Авг-21 (10) –1
            >>>>> мне в программе нужно завернуть 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, как оно это делает?, !*! cods, 13:14 , 22-Авг-21 (11)
              >[оверквотинг удален]
              >>>>> socat так не делает.
              >>>>> Если ты имеешь в виду "bidirectional pipe", то Linux так не делает.
              >>>>> man 7 pipe. Можно в BSD.
              >>>>> Вообще толком объясни, что ты хочешь. Походу, ни разу не дескриптор (чего?).
              >>>> завернуть stdio/stdout в один дескриптор rw как?
              >>> https://man7.org/linux/man-pages/man3/stdout.3.html
              >> мне нужно !два! десткриптора stdin и stdout завернуть в один дескриптор, где
              >> там в вашем мане это?
              > тебе нужно забыть про програмирование и про компуктеры вообще и полностью
              > тебе нужно найти работу грузчиком в пятёрочке или гдето там

              по вашему тону и знаниям вы сами давно в грузчиках батрачите

  • socat, как оно это делает?, !*! Ann None, 19:54 , 21-Авг-21 (9)
    > мне в программе нужно завернуть stdin/stdout в дескриптор чтобы через него можно
    > было полноценно делать read/write, подскажите какой алгоритм действий?

    https://www.opennet.me/man.shtml?topic=dup2
    сюда попробуй




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру