Используя функцию 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()
.