ChinaUnix.net
相关文章推荐:

fread fwrite fseek

fread从头至尾读取二进制文件,读一段存一段,我的问题是每次读完一段后需要fseek么? 是不是只要在fopen之后fseek一次就ok了,读取的内容是连续的,存是选择性的,即是不连续的

by lydut - C/C++ - 2008-06-17 00:33:03 阅读(3711) 回复(3)

相关讨论

//在SOLARIS平台下,fopen,fseek,fread,fwrite这些函数在哪些情况下会出错呢? //不是编译的问题!也不是经常出现!我就是想知道那几个函数在哪些情况下会失败! #define COPY_STRUNIT_LEN 256 #define F_COPY_DONE 0 #define F_OPENSRC_ERR 1 #define F_SRCSEEKEND_ERR 2 #define F_SRCSEEKSET_ERR 3 #define F_OPENDEST_ERR ...

by njzsj - Solaris - 2005-02-20 15:15:43 阅读(1500) 回复(0)

我在linux下创建多个进程对同一文件操作,需要进行fseek,fread,fwrite函数调用, 从同一文件中读数据用到fseek,fread需要上锁吗?即先用fseek确定读位置,再进行读操作(我感觉不要,因为每个进程有自己的偏移量) 向同一文件写数据用到fseek,fwrite需要上锁吗?即先用fseek确定写入位置,再进行写操作 (感觉需要,因为对同一文件写是对共享资源操作) 请牛人给出确切的答复,并讲下原因,好吗? 我对这方面不清楚,谢谢

by richardzhang - C/C++ - 2007-12-09 22:58:56 阅读(2801) 回复(3)

如何用fread fwrite复制一个文件? fread读到文件末尾时候,返回0;该如何知道实际读了多少数据? 谢谢 [code] int main( int argc, char *argv[] ) { int i, len; int rfd, wfd; char *buf; FILE *rfp, *wfp; len = atoi( argv[3] ); printf( "%d\n", len ); buf = (char*)alloca( len ); rfp = fopen( argv[1], "rb" ); wfp = fopen( argv[2], "w...

by jack9981 - C/C++ - 2007-05-17 12:42:42 阅读(2148) 回复(4)

是不是这两个函数不管文件以何种方式打开输出的都是二进制流?为什么以下两个程序输出无差别? #include #include /*本程序测试字节输出顺序,结果为先输出低位字节,后输出高位字节*/ void main() { unsigned int a=25185;/*a=98*256+97*/ FILE* fp; fp=fopen("a.txt","wb+"); //这改为“wt+"竟结果不变? if(fp==0){puts("error");exit(0);} fwrite(&a,sizeof(unsigned int),1,fp); f...

by beginer1 - C/C++ - 2005-12-08 23:47:57 阅读(2987) 回复(7)

我真在谢谢一个小coding,巴数字放在两维数组里,然后把数组写在文件中,但是,当我读取的时候,我只能拿到第一行,别的拿不到,为什么? #include ; int main() { int row, col,i; int sum =0; FILE *my_stream; char my_filename[] = "my_numbers"; size_t object_size = sizeof(int); size_t object_count = 16; size_t op_return; int **tmp; tmp = (int **)malloc((4) * sizeof(int *)); for (i=0; i <=3; i++) tmp ...

by sandhurst - C/C++ - 2004-06-29 16:12:13 阅读(1061) 回复(3)

我的程序是想把文件111.txt中的16进制数 "0x00,0x01,0x10, 0xa4,0x23,0xbc, 0x23,0xa0,0x2d, 0x31,0x65,0xf1, 0x8a,0x10,0x45, 0xc0,0x9a,0x20," 转换为2进制 "000000000000000100010000 ..............................................."输出到222.txt中.并24个数字一行 请看看程序哪里有问题,运行时提示内存地址"0xcccccccc"不能写 #include #include void main() { FILE * fp; FILE * fp1; char * a; ...

by little28 - C/C++ - 2006-07-15 19:44:38 阅读(1242) 回复(4)

有一份交换数据; 可以用ofstream操作 然后再用fread/fwrite操作吗? 现在发现ofstream保存的文件,fread打开数据是‘假’的

by 消失在地平线 - C/C++ - 2009-08-25 18:36:53 阅读(1924) 回复(4)

一个文件内容复制的代码,内容如下: [code] ... ... infile = fopen(infilename,"r"); outfile = fopen(outfilename,"w"); ... ... do { bread = fread(buf,1,1024,infile); bwritten = fwrite(buf,1,bread,outfile); } while (bread == bwritten && feof(infile) == 0); ... ... [/code] 问题: 1、输入文件包含0A(换行?)时,结果文件会包含0D 0A(回车换行?)。freadfwrite不是对二进制文件进行操作吗,怎么会有...

by TooooOld - C/C++ - 2005-01-05 20:51:19 阅读(2110) 回复(4)

我定义一个informix游标,然后从数据库里面把记录select到一个结构struct里面,然后用 fwrite把这个结构写入到二进制wb方式打开的文件。 然后把这个文件通过中间件传到前台,通过程序fread 把里面的记录一条条取到跟struct一摸一样的另一个struct里面,然后通过程序显示每条记录。 结果发现:凡是那些long或者int类型的字段,通通跟数据库里面的值不一样了,比如原来一个long类型的字段,数值是42,结果fread 出来后变成了1883423...

by mill888 - C/C++ - 2004-08-17 11:30:35 阅读(1386) 回复(2)

ques: 1.我不明白为什么打开line16程序就正常了 ,为什么每次都要做fseek? 2.应该是 fseek 到了 10 再读文件, 位置为20 写入"apple", 为什么运行结果是这样,我并没有将buffer写入文件 为何会出现在文件? [code] #include int main() { FILE * fp = fopen("a.txt","r+b"); char buffer[100] ="1234567890"; fseek(fp, 10, SEEK_CUR); fread( buffer,1, 10,fp); printf("buffer = [%s]\n", buffer); /*...

by stuff990 - C/C++ - 2006-10-23 16:40:33 阅读(3930) 回复(8)