Linux fcntl - сбрасывание флага

Вы можете использовать цикл while вместо find, который не реализован.

Если вы хотите удалить более одного, удалите оператор break.

var index = array.length;

while (index--) {
    if (array[index].name === 'email') {
        array.splice(index, 1);
        break;
    }
}
6
задан chappar 23 December 2008 в 08:56
поделиться

2 ответа

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

Непротестированный, но надежда это помогает.:-)

4
ответ дан 16 December 2019 в 21:47
поделиться

Попробованное сбрасывание всех флагов:

fcntl(sockfd, F_SETFL, 0);

Также осуществление операции ИЛИ флаги с ~O_NONBLOCK бесполезно, Вы должны И это, начиная с того, что Вы хотите, должен сбросить бит (биты) O_NONBLOCK.

0
ответ дан 16 December 2019 в 21:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: