深入剖析Linux I/O操作與標準I/O操作區別與聯絡__Linux

來源:互聯網
上載者:User

檔案I/O:open creat close lseek read write dup dup2 sync fsync fcntl ioctl

            所有函數都是針對檔案描述符。 

            所有的都是原子操作,這個在多進程間共用檔案時就顯得尤為重要。

           int open(const char *pathname,int flag,... /* mode_t mode*/) ;

                        Samples: open(pathname,O_RDWR | O_CREAT | O_TRUNC, mode);

           int creat(const char *pathname,mode_t mode);

           int close(int filedes);

           off_t lseek(int filedes, off_t offset, int whence);

           ssize_t read(int filedes, void *buf, size_t nbytes);

           ssize_t write(int filedes, const void *buf, size_t nbytes);

標準I/O:FILE,

           標準庫都是圍繞流進行的,(教訓:fflush就是一種通過重新整理緩衝讓緩衝中的資料被讀或者寫)。

           我現在憑記憶可以羅列的就只有:FILE結構體, fopen,fread,fwrite,fclose,fgetc,fputc,fgets,fputs,fflush.

           標準IO分為全緩衝,行緩衝,不帶緩衝。

           全緩衝:填滿緩衝後才執行IO操作。

           行緩衝:輸入或輸出中遇到分行符號時,標準庫執行IO操作。

                        對於行緩衝有兩個限制1)行的長度是有限制的,如果一行滿了,即使沒有分行符號也會執行IO操作。

                                                         2)任何時候,從一個不帶緩衝的流,或者一個行緩衝流得到輸入資料,就會造成沖洗所有緩衝流。【此處,或者很誤解】。

           不帶緩衝:字元輸入輸出。通常標準出錯流stderr也是不帶緩衝的。

進階I/O:

            關於進階I/O,有太多的內容,非阻塞I/O,記錄鎖,STREAMS,I/O多路轉換(select,pselect, poll ,epoll),非同步I/O(System V ,BSD),readv,writev,readn,writen.儲存映射I/O等。這些是Unix系統進階編程2裡介紹的。




http://blog.csdn.net/yunsongice


linux multimedia

http://tech.ccidnet.com/art/302/20060927/911605_7.html

http://gstreamer.freedesktop.org/


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.