ioctl () сбрасывает флаги в исходное значение - PullRequest
0 голосов
/ 17 июня 2020

Используя функцию linux fnctl(), я могу получить исходные флаги fd и установить их обратно, как здесь:

    flags = fcntl(fd, F_GETFL, 0);
    //set to non-blocking
    fcntl(fd, F_SETFL, flags | O_NONBLOCK);
    //restore flags
    fcntl(fd, F_SETFL, flags);

Проблема в F_SETFL, он не работает, когда fd > 1024.
Я пробовал использовать функцию ioctl(). Есть ли способ запросить существующие флаги с помощью ioctl() и установить / восстановить их обратно?
Мы используем ioctl() с poll().

...