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

Linux基础(五)fread, gets,getchar(),pread,getline(),scanf()_第1张图片
**

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

你可能感兴趣的:(linux,数据)