问题描述
- 下方是我的c语言代码,为何下方程序的运行需要等好长时间才能打印出第一个字符。。。。何解?
-
#include<unistd.h> #include<stdio.h> #include<sys/mman.h> #include<fcntl.h> #include<stdlib.h> typedef struct{ int integer; char string[24]; } RECORD; #define NRECORDS (10) RECORD record,*mmaped; void write_mmap_area(){ printf("oh my god ...."); int fd = open("records.dat",O_RDWR); mmaped = (RECORD*)mmap(0,NRECORDS*sizeof(record),PROT_READ|PROT_WRITE,MAP_SHARED,fd,0); int i = 0; for(;i<10;i++){ int j = 0; printf("此次准备"); for(;j<10;j++){ printf("%d秒后,将开始修改数据...",10-j); sleep(1); } sprintf(mmaped[i].string,"modify : %d ",i); printf("此次结束"); } } int main(){ printf("I am ready!!!"); write_mmap_area(); printf("END"); return 0; }
解决方案
用clock()函数来测试下看看哪段代码运行时间长
解决方案二:
已经解决,看楼上。出现的问题是,我忘记在printf输出中加入n了,因为printf是缓冲池满了才输出,
为了让它立刻输出,需要加上n,读到换行符时就会立刻输出。谢谢你哈。
时间: 2024-11-02 10:36:59