• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 使用read()的一個例子

    發表于:2007-05-26來源:作者:點擊數: 標簽:
    下面的程序我不是原創。 #include sys/types.h #include fcntl.h #include unistd.h #include stdlib.h int main( void ) { int fd; int size_read; char buffer[80]; /* Open a file for input */ fd = open( myfile.dat, O_RDONLY ); /* Read the text */
    下面的程序我不是原創。

    #include <sys/types.h>
    #include <fcntl.h>
    #include <unistd.h>
    #include <stdlib.h>
    int main( void )
    {
    int fd;
    int size_read;
    char buffer[80];
    /* Open a file for input */
    fd = open( "myfile.dat", O_RDONLY );
    /* Read the text */
    size_read = read( fd, buffer,
    sizeof( buffer ) );
    /* Test for error */
    if( size_read == -1 ) {
    perror( "Error reading myfile.dat" );
    return EXIT_FAILURE;
    }
    /* Close the file */
    close( fd );
    return EXIT_SUCCESS;
    }

    sizeof()是什么意思?
    請問這里的 O_RDONLY是什么意思?
    請問這里的 EXIT_SUCCESS是術語嗎?還是可以自己定義的?

    open64() open()

    發現有這兩個相似的函數,他們有什么區別?

    我這里沒查到open64()
    sizeof()是求變量或數據類型大小的運算符,可以找一本c語言的入門書看一下
    O_RDONLY是只讀打開,參見 man 2 open
    EXIT_SUCCESS和EXIT_FAILURE是退出碼,參見 man 3 exit
    謝謝~
    open64()我是在這里看到的。
    http://www.qnx.com/developer/docs/q...ref/o/open.html

    size_read = read( fd, buffer,
    sizeof( buffer ) );
    fd是文件句柄。 這里兩次出現buffer,后面的拿80代替,第一個buffer是什么意思?
    size_read好象是計算它的返回狀態?
    mm,第一個buffer是個指針,指向保存讀出的內容的空間,read返回的是讀到的字節數
    謝謝~~請問fd是文件句柄嗎?

    第一個是是指針?這里是read特別指定的嗎?就是說是它的格式。

    要不是這樣,前面怎么沒定義呀?

    前面的buffer[80]就一次搞定了
    read返回的是讀到的字節數,不同意你這句話,read()返回的值后面怎么回判斷是否是-1,好象是返回一種狀態
    open64()是這個:
    Large-file support
    These functions support 64-bit offsets.

    read的三個參數是:
    文件描述符:fd
    緩沖區指針:buffer
    緩沖區大?。簊izeof(buffer) (== 80)
    如果read調用失敗就返回-1(一般系統調用都是失敗返回-1),成功就返回讀到的字節數

    另:APUE是一本好書,建議看看,書名是:
    《UNIX環境高級編程》(Advanced Programming in the UNIX Environment)
    Richard Stevens寫的,機械工業出版社出的中文版。
    另外還應該找一本C語言的書看看
    謝謝兩位!!!

    fd是文件描述符,在perl 用open是這樣:open(handle,"file_name")

    我估計fd和handle的作用相同,只是解釋不同
    看《UNIX環境編程》P148,有一段。
    所有的I/O都是由兩個系統調用完成:read()和write(),它們來自C的同名函數,對于這兩個函數,第一個參數是文件描述符,第二個參數是字符數組,用做數據源或數據目標;第三個參數是要傳輸的字節數。

    對第二個參數的解釋好難理解阿。。。不知道英文版的是怎么說的?
    比如說有一個緩沖區
    char buf[512];
    可以這樣來使用:
    read(fd, buf, 512);
    write(fd,buf,512);
    謝謝kj501,對格式感到陌生,先學著吧

    原文轉自:http://www.kjueaiud.com

    評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>