您的位置:首页 > 运维架构 > Linux

Linux基础(五)fread, gets,getchar(),pread,getline(),scanf()

2015-10-12 16:01 561 查看


**

1.size_t fread ( void * buffer , size_t size , size_t count , FILE * stream ) ; 从一个文件流 stream 中读数据到 buffer( buffer )

,最多读取count个元素,每个元素size字节,如果调用成功返回实际读取到的元素个数,如果不成功或读到文件末尾返回 0。

2. gets(char * buffer ): 从stdin流中读取 字符串 ,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer 指针 所指向的字符 数组

中。换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。

3.int getchar(): #define getchar() getc(stdin), 返回类型为int型,返回值为用户输入的ASCⅡ码,出错返回-1。

4. ssize_t pread(int fd , void * buf , size_t count , off_t offset ); 从 文件描述符 fd 读数据到 buffer,从 读取地址(=文件开始+offset) 最多读取count个元素, 执行后, 文件偏移

指针不变。返回成功读取数据的字节数;失败,返回-1;

5. ssize_t getline(char **lineptr, size_t *n, FILE *stream); lineptr: ; 从 文件流 stream 读数据到 lineptr( 如果是NULL,则有系统帮助malloc,请在使用完成后free释放,

如果是由系统malloc的指针,n请填0 ) ,

直到以下情况发生会导致生成的此字符串结束。1)到文件结束,2)遇到函数的定界符,3)输入达到最大限度。 , 执行后, 文件偏移

指针不变。返回成功读取数据的字节数;失败,返回-1;

6.scanf 显然 pread的文件描述符不一样

原题链接

http://www.nowcoder.com/test/question/done?tid=1747315&qid=25450#summary
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: