问题点&二进制I/O函数fread(),fwrite()的使用

来源:互联网 发布:断头之狗苏联 知乎 编辑:程序博客网 时间:2024/04/26 06:48

问题点:
1。png二进制文件的传输方式
2。daemon+异步I/O的实现方式
调了几天,还是没有调通。
*******************************************************************
当对png,gif图片等非文本形式的文件进行读写时,我们不能使用普通的read(),write()函数来读取文件数据,要用到二进制I/O函数fread(),fwrite()。
/*************************************/
#include    <stdio.h>
size_t    fread(void *ptr,    size_t size,    size_t nobj,    FILE *fp);
size_t    fwrite(const void *ptr,    size_t size,    size_t nobj,    FILE *fp);
/***************************************/
eg:
char    data[20];
if(fread(&char[2],    sizeof(char),    6,    fp)!=6)
        {printf(“fread error/n”);    exit(1);}
fread和fwrite返回读或写得对象数。对于读,如果出错或是到文件尾端,则此数字可以少于nobj。这时,我们应当调用ferror或feof来判断究竟是哪一种情况,
/***************************************/
#include    <stdio.h>
int    ferror(FILE *fp);
int    feof(FILE *fp);  
/*********************************/
两个函数返回:若条件为真则为非0(真),否则为0(假)。