gpt4 book ai didi

linux fcntl - 取消设置标志

转载 作者:IT王子 更新时间:2023-10-29 00:49:15 28 4
gpt4 key购买 nike

如何使用 fcntl 取消设置已设置的标志?

例如我可以使用

将套接字设置为非阻塞模式
fcntl(sockfd, F_SETFL, flags | O_NONBLOCK)

现在,我想取消设置 O_NONBLOCK 标志。

我试过 fcntl(sockfd, F_SETFL, flags | ~O_NONBLOCK)。它给了我错误 EINVAL

最佳答案

int oldfl;
oldfl = fcntl(sockfd, F_GETFL);
if (oldfl == -1) {
/* handle error */
}
fcntl(sockfd, F_SETFL, oldfl & ~O_NONBLOCK);

未经测试,但希望对您有所帮助。 :-)

关于linux fcntl - 取消设置标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/388434/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com