socketpair () может использоваться вместо pipe2 () и должен поддерживаться во всех версиях ядра? - PullRequest
0 голосов
/ 28 октября 2018

Использование опции O_DIRECT в pipe2() поддерживается только Linux начиная с ядра 3.4.У меня ядро ​​2.6, где опция O_DIRECT не поддерживается.Таким образом, socketpair() может заменить pipe2().

Мой фрагмент кода:

if( pipe2( dx_evq, O_DIRECT | O_CLOEXEC ) ){perror( "pipe2 failure" );exit( EXIT_FAILURE );}

В нашем коде демона мы вызываем pipe2() с запрошенной опцией O_DIRECT как частьпроцесса инициализации Daemon.

Мы получаем следующую ошибку:

pipe2 ошибка: неверный аргумент

...