Linux 阻塞 非阻塞讀終端

2021-09-19 12:00:50 字數 592 閱讀 5306

阻塞讀終端:block指當串列埠輸入緩衝區沒有資料的時候,read函式將會阻塞在這裡,移植到串列埠輸入緩衝區中有資料可讀取,read讀到了需要的位元組數之後,返回值為讀到的位元組數

#include #include int main(void)

write(stdout_fileno, buf, n);

return 0;

}

非阻塞讀終端:no block指當串列埠輸入緩衝區沒有資料的時候,read函式立即返回,返回值為0

#include #include #include #include #include #define msg_try "try again\n"

int main(void)

tryagain:

n = read(fd, buf, 10);

if (n < 0)

perror("read /dev/tty");

exit(1);

} write(stdout_fileno, buf, n);

close(fd);

return 0;

}

阻塞 非阻塞 讀終端

阻塞和非阻塞是檔案的屬性還是read函式的屬性?答 檔案的屬性 預設情況下,檔案的屬性是阻塞還是非阻塞的?預設不阻塞 普通檔案 預設阻塞 終端裝置 de tty,管道,套接字 errno與eagain errno eagain表示緩衝區無資料可讀 即 此時並沒有read讀到資料 阻塞讀終端 int ...

Linux阻塞和非阻塞

阻塞 休眠 呼叫是沒有獲得資源則掛起程序,被掛起的程序進入休眠狀態,呼叫的函式只有在得到結果之後才返回,程序繼續。非阻塞 休眠 是不能進行裝置操作時不掛起,或返回,或反覆查詢,直到可以進行操作為止,被呼叫的函式不會阻塞當前程序,而會立刻返回。因為阻塞的程序會進入休眠狀態,因此,必須確保有乙個地方能夠...

Linux阻塞與非阻塞

1.阻塞 block 概念 指程序或執行緒在執行裝置操作或管道,或則網路時,不能獲取到資源就被掛起,直到滿足可操作的條件後在進行操作,被掛起的程序進入休眠狀態,從執行佇列移走,直到 等待的條件滿足才繼續執行。也就是執行到某些函式時必須等待某個事件發生函式才返回。2.非阻塞 non block 程序就...