gpt4 book ai didi

c - 用于填充结构值的系统调用

转载 作者:行者123 更新时间:2023-11-30 18:56:13 25 4
gpt4 key购买 nike

我正在尝试使用系统调用填充struct值。我最初的努力如下。但是我从打印语句中得到垃圾值。

int fd;
int nbytes;
struct message {
char *from;
char *to;
int size;
};
struct message m1={"me","you",10};
struct message m2;

fd=creat("structfile",0644);
nbytes=write(fd,&m1,sizeof(m1));
read(fd,&m2,nbytes);

printf("%s %s %d",m2.from,m2.to,m2.size);

还有其他方法可以做到这一点吗? (我正在考虑通过调用 gethostbynamereaddir< 来直接填充诸如 hostentdirent 之类的结构的方式 分别)

最佳答案

问题 1:

fd 在哪里初始化的?

问题2:

线路

nbytes=write(fd,&m1,sizeof(m1));

写入指针m1.fromm1.to的数值。它不会写入它们指向的字符串。

如果要写入m1的内容,则必须序列化m1.fromm1.to的内容。有用于此目的的库。您可以从 How to serialize data in C 看到一些引用资料.

关于c - 用于填充结构值的系统调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25028553/

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