gpt4 book ai didi

c - 连续两次 fwrites 操作

转载 作者:行者123 更新时间:2023-12-05 01:48:33 24 4
gpt4 key购买 nike

我有一个以写入模式打开的文件,如下所示:

int a = 10;
char b = 'm';
int y = 0;
char z;

FILE *fp = NULL;
fp = fopen("/config/gps_backup.dat","w");

我正在对文件中的两个变量(第一个是整数,第二个是字符)进行 frwite,如下所示:

fwrite(&a,1,sizeof(int),fp);
fwrite(&b,1,sizeof(char),fp);
  1. 连续两次fwrite操作会不会互相覆盖
  2. 如果不是,是否可以将两个连续的 fread 操作正确填充到我的变量

例如:

fread(&y,1,sizeof(int),fp);
fread(&z,1,sizeof(char),fp);

如果连续进行 fread 操作,y 和 z 变量是否可以保持 10 和 'm' 的值。

你好

最佳答案

只要不是并行执行,两个连续的 fread 或 fwrite 应该不会造成任何问题。

系统会维护FILE *中的seek指针,确保你在连续的fwrites和freads中得到正确的写入和读取数据。

可以引用man page了解更多详情。

它在 RETURN VALUES 部分清楚地说明了以下内容

 The functions fread() and fwrite() advance the file position indicator
for the stream by the number of bytes read or written. They return the
number of objects read or written. If an error occurs, or the end-of-
file is reached, the return value is a short object count (or zero).

关于c - 连续两次 fwrites 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10810593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com