[uart]linux串口的阻塞非阻塞切換


比如寫的時候設置為阻塞,讀的時候設置為非阻塞,就需要下面的切換方式

1、獲取文件的flags,即open函數的第二個參數:

       flags = fcntl(fd,F_GETFL,0);

2、設置文件的flags:

      fcntl(fd,F_SETFL,flags);

3、增加文件的某個flags,比如文件是阻塞的,想設置成非阻塞:

       flags = fcntl(fd,F_GETFL,0);

       flags |= O_NONBLOCK;

      fcntl(fd,F_SETFL,flags);

4、取消文件的某個flags,比如文件是非阻塞的,想設置成為阻塞:

      flags = fcntl(fd,F_GETFL,0);

      flags &= ~O_NONBLOCK;

      fcntl(fd,F_SETFL,flags);

如果fcntl(fd, F_SETFL, 0); 設置為阻塞狀態


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM