Linux fwrite 什么时候刷新,linux的fwrite()使用方法,当前时间写入文本的程序
1.函數功能
用來讀寫一個數據塊。
2.一般調用形式
fwrite(buffer,size,count,fp);
3.說明
(1)buffer:是一個指針,對fread來說,它是讀入數據的存放地址。對fwrite來說,是要輸出數據的地址。
(2)size:要讀寫的字節數;
(3)count:要進行讀寫多少個size字節的數據項;
(4)fp:文件型指針
這是工作中用 fwrite函數寫的例子,不僅記錄下自己的學習情況,也分享給各位朋友這個fwrite函數實例。
這個fwrite實例是當前時間寫入文本的程序,下面這個是fwrite函數的使用方法。
int markfile(void )
{
FILE *sp ;
//????char buff[512] ;
char count = 0;
char *currentime = NULL;
char *wday[] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
time_t timep;
struct tm *p;
time(&timep);
p = localtime(&timep);
currentime = ctime(&timep);
//????memset(buff,0,512);
//????sprintf(buff,"%s",currentime);
printf("%d/%d/%d",(1900+p->tm_year),(1+p->tm_mon),p->tm_mday);
printf(" %s %d:%d:%d\n",wday[p->tm_wday],p->tm_hour,p->tm_min,p->tm_sec);
if((sp = fopen("/root/kay/mark.txt","a+")) == NULL)
return 0;
fwrite(currentime,size(currentime)-1,1,sp);
fclose(sp);
return 1;
}
size(currentime)( = 26 )的作用是得出指針currentime所指的字符串的個數(包括'\0'),但是會輸出亂碼(應該是字符串的個數太長了),因此,我把個數減掉一個,就能舒適正確結果。
用另外一種方法:
int markfile(void )
{
FILE *sp ;
char buff[512] ;
char count = 0;
char *currentime = NULL;
char *wday[] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
time_t timep;
struct tm *p;
time(&timep);
p = localtime(&timep);
currentime = ctime(&timep);
//????memset(buff,0,512);
sprintf(buff,"%s",currentime);
printf("%d/%d/%d",(1900+p->tm_year),(1+p->tm_mon),p->tm_mday);
printf(" %s %d:%d:%d\n",wday[p->tm_wday],p->tm_hour,p->tm_min,p->tm_sec);
if((sp = fopen("/root/kay/mark.txt","a+")) == NULL)
return 0;
fwrite(currentime,(count = strlen(buff)),1,sp);
printf("%d\n",count);
fclose(sp);
return 1;
}
count = strlen(buff) 來獲得字符的個數??結果是25,
綜上的對比 覺得是fwrite()輸出的字符不要包括結束符('\0'),否則會因為字符個數多了而造成亂碼
看完的朋友,覺得對你們有幫助就頂一個,如果覺得哪里不好,可以發表下看法,共同學習。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Linux fwrite 什么时候刷新,linux的fwrite()使用方法,当前时间写入文本的程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UE4--多线程的实现方式
- 下一篇: linux优先级队列,Python3