user-0 提问: 写文件，往里面写入100M随机数据，然后删除，重写，一直写。

回复:
user: user-1
content: 多谢改正。  引用 10 楼 zhao4zhong1 的回复:将楼上略改：#include <stdlib.h> #include <stdio.h> #include <assert.h> #include <time.h>  int main() {     // 目标文件     const char * file = "xxx.tmp";      // 单次写入大小     size_t once_bytes = 1024 * 1024;     // 写入次数 （times * once_bytes = 100M）     size_t times = 100;      // 总写入文件次数     size_t total_times = 2000000;      FILE * f = fopen(file, "wb");     assert(f);      void * buffer = malloc(once_bytes);     assert(buffer);      time_t now;     char   time_buffer[64];      for (size_t k = 0; k < total_times; ++k)     {         fseek(f, 0, SEEK_SET);         for (size_t i = 0; i < times; ++i)         {             if (fwrite(buffer, once_bytes, 1, f) != 1)             {                 free(buffer);                 fclose(f);                  printf("write error!");                  return -1;             }         }         fflush(f);          time(&now);         strftime(time_buffer, sizeof(time_buffer), "%Y-%m-%d %H:%M:%S", localtime(&now));          printf("%07u : %s\n", k, time_buffer);     }      free(buffer);     fclose(f);      return 0; }

user: user-1
content: 没测，试一下：   #include <stdlib.h> #include <stdio.h> #include <assert.h> #include <time.h>  int main() { 	// 目标文件  	const char * file = "xxx.tmp"; 	 	// 单次写入大小  	size_t once_bytes = 1024 * 1024; 	// 写入次数 （times * once_bytes = 100M）  	size_t times = 100; 	 	// 总写入文件次数  	size_t total_times = 2000000; 	 	FILE * f = fopen(file, "w"); 	assert(f); 	 	void * buffer = malloc(once_bytes); 	assert(buffer);	 	 	time_t now; 	char   time_buffer[64] = {0}; 		 	for (size_t k = 0; k < total_times; ++k) 	{ 		fseek(f, 0, SEEK_SET); 		for (size_t i = 0; i < times; ++i) 		{ 			if (fwrite(buffer, once_bytes, 1, f) != 1) 			{ 				free(buffer); 				fclose(f); 				 				printf("write error!"); 				 				return -1; 			} 		}	 		fflush(f); 		 		time(&now); 		strftime(time_buffer, sizeof(time_buffer), "%Y-%m-%d %H:%M:%S", localtime(&now)); 		 		printf("%04u : %s\n", k, time_buffer); 	} 	 	free(buffer); 	fclose(f); 	 	return 0;	 }

user: user-2
content: 每次成功擦出都打印哈当前时间

user: user-3
content: 写完1M后掉个 fprintf写日志

user: user-0
content: 引用 3 楼 Adol1111 的回复:引用 楼主 u012805870 的回复:测试用，往一文件里面写入大量随便什么数据，100M，然后fseek开头,重写，一直写，为了知道是否一直在写数据，文件最后显示时间。求大神。谢谢一直写...然后最后显示时间？那你什么时候读？一边写一边读，判断是否在写？还是写完了再读，最后验证下时间？ 不需要读，就是写数据，随便什么数据，保存文件。一直写，满了100M，擦除，再写，重复。测试写SD卡。

user: user-0
content: 引用 2 楼 N_sev7 的回复:[quote=引用 楼主 u012805870 的回复:] 测试用，往一文件里面写入大量随便什么数据，100M，然后fseek开头,重写，一直写，为了知道是否一直在写数据，文件最后显示时间。求大神。谢谢 写够100M之后再写一个日志文件 将当前时间保存进去 看日志文件就知道了[/quote]谢谢，能否给个链接参考！

user: user-0
content: 引用 1 楼 max_min_ 的回复:测试什么呢？还有你要问什么？测试往sd卡写大量数据，系统挂死问题。简单模拟测试下。怎么随机产生大量数据，然后写入文件。搞个标识能鉴别，一直重复的在写数据。

user: user-4
content: 引用 楼主 u012805870 的回复:测试用，往一文件里面写入大量随便什么数据，100M，然后fseek开头,重写，一直写，为了知道是否一直在写数据，文件最后显示时间。求大神。谢谢一直写...然后最后显示时间？那你什么时候读？一边写一边读，判断是否在写？还是写完了再读，最后验证下时间？

user: user-5
content: 引用 楼主 u012805870 的回复:测试用，往一文件里面写入大量随便什么数据，100M，然后fseek开头,重写，一直写，为了知道是否一直在写数据，文件最后显示时间。求大神。谢谢 写够100M之后再写一个日志文件 将当前时间保存进去 看日志文件就知道了

user: user-6
content: 测试什么呢？还有你要问什么？

user: user-7
content: 不要把 fopen("...","...");fscanf,fprintf,fclose //读时把\r\n替换成\n，写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待 和 fopen("...","...b");fread,fwrite,fclose  //不作以上替换，遇到\x1a仍继续读;读写的内容当字节看待 弄混了

user: user-8
content: #include <stdio.h> #include <time.h> #include <string.h>  int main() { 	char* filename = "tmp.txt"; 	char buf[512]; 	for(int i=0;i<512;++i) 		buf[i] = i%128;  	FILE* pf = fopen(filename, "w"); 	int count = 200000; 	while(1) 	{ 		rewind(pf); 		for(int i=0;i<1;++i)		//程序运行时可看出一直在写 	//	for(int i=0;i<count;++i)	//大量重复写 		{ 			fwrite(buf, 1, 512, pf); 		} 		time_t rawtime; 		struct tm* timeinfo; 		time(&rawtime); 		timeinfo = localtime(&rawtime); 		char* s_time = asctime(timeinfo); 		fwrite(s_time, strlen(s_time), 1, pf); 	} 	fclose(pf); 	return 0; }  按照楼主要求改了下。

user: user-8
content: #include <stdio.h> #include <time.h> #include <string.h>  int main() { 	char* filename = "tmp.txt"; 	char buf[512]; 	for(int i=0;i<512;++i) 		buf[i] = i%128;  	FILE* pf = fopen(filename, "w"); 	int count = 200000; 	for(int i=0;i<count;++i) 	{ 		fwrite(buf, 1, 512, pf); 	} 	time_t rawtime; 	struct tm* timeinfo; 	time(&rawtime); 	timeinfo = localtime(&rawtime); 	char* s_time = asctime(timeinfo); 	fwrite(s_time, strlen(s_time), 1, pf);  	fclose(pf); 	return 0; }  将近100M 记事本都打不开 直接卡死

user: user-7
content: 将楼上略改：#include <stdlib.h> #include <stdio.h> #include <assert.h> #include <time.h>  int main() {     // 目标文件     const char * file = "xxx.tmp";      // 单次写入大小     size_t once_bytes = 1024 * 1024;     // 写入次数 （times * once_bytes = 100M）     size_t times = 100;      // 总写入文件次数     size_t total_times = 2000000;      FILE * f = fopen(file, "wb");     assert(f);      void * buffer = malloc(once_bytes);     assert(buffer);      time_t now;     char   time_buffer[64];      for (size_t k = 0; k < total_times; ++k)     {         fseek(f, 0, SEEK_SET);         for (size_t i = 0; i < times; ++i)         {             if (fwrite(buffer, once_bytes, 1, f) != 1)             {                 free(buffer);                 fclose(f);                  printf("write error!");                  return -1;             }         }         fflush(f);          time(&now);         strftime(time_buffer, sizeof(time_buffer), "%Y-%m-%d %H:%M:%S", localtime(&now));          printf("%07u : %s\n", k, time_buffer);     }      free(buffer);     fclose(f);      return 0; }