簡體   English   中英

fprintf不會編寫整個過程

[英]fprintf does not write the whole process

我正在編寫一個代碼,該代碼從另一個程序獲取1024個數據包,然后將它們打印到控制台,並將它們寫入txt文件。 現在,數據包可以很好地傳輸,接收器將所有1024個數據包成功打印到控制台。 但是,當我打開txt文件時,我看到它在第972個數據包中間停止寫入。 我在txt上的輸出是這樣的:

Binary Buffer1: 01111000110 :966

Binary Buffer2: 01111000111 :967

XOR:            00000000001


Binary Buffer1: 01111001000 :968

Binary Buffer2: 01111001001 :969

XOR:            00000000001


Binary Buffer1: 01111001010 :970

Binary Buffer2: 01111001011 :971

XOR:            00000000001


Binary Buffer1: 01111001100 :972

Bin

它只是在那個Bin之后停止了。 我的fprintf代碼部分是這樣的:

if(message_to_send[0]=='\0'&&message_to_send2[0]=='\0')

    {

        n = recvfrom(sockfd,message_to_send,5,0,(struct sockaddr *)&cliaddr,&len);

    sayi1=atoi(message_to_send);

    printf("Binary Buffer1: %s :%d\n",byte_to_binary(sayi1),sayi1);

    fprintf(f, "Binary Buffer1: %s :%d\n", byte_to_binary(sayi1),sayi1);

    sendto(sockfd,message_to_send,n,0,(struct sockaddr *)&cliaddr,sizeof(cliaddr));

    }


else if (message_to_send[0]!='\0'&&message_to_send2[0]=='\0')

    {

    n2 = recvfrom(sockfd,message_to_send2,5,0,(struct sockaddr *)&cliaddr,&len);

    sayi2=atoi(message_to_send2);

    printf("Binary Buffer2: %s :%d\n",byte_to_binary(sayi2),sayi2);

    fprintf(f, "Binary Buffer2: %s :%d\n", byte_to_binary(sayi2),sayi2);



    sendto(sockfd,message_to_send2,n2,0,(struct sockaddr *)&cliaddr,sizeof(cliaddr));

    }

該代碼塊處於循環中,因此它打印所有1024個數據包。 我不知道可能是什么原因。 寫入文本文件沒有限制嗎?

謝謝您的幫助。

您是否在程序結尾處關閉文件,並且確實達到了該關閉操作? 否則,緩沖的文件IO可能不會寫入該文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM