c 语言将字符串保存至文件,将带有char *字符串的C结构保存到文件中
我正在嘗試將帶有char *字符串的結構保存到文件中.
struct d_object {
int flags;
int time;
int offset;
char *filename;
};
問題是,當我這樣做時,我顯然只會保存該指針的地址而不是字符串.所以我所做的只是使用一個字符數組,但我不得不設置字符串的最大大小.這工作正常,但我想知道是否有任何存儲結構與文件中的char *(我在某些時候malloc)然后檢索它.我可以保存字符串和結構分開,然后檢索它們,但它是相當混亂.如果我可以將整個結構(上面的結構)加載并保存到文件中,那將是更好的選擇.謝謝!
帶有char數組的代碼如下:
#include
#include
#include
struct d_object {
int flags;
int time;
int offset;
char filename[255];
};
int main(int argc, char **argv) {
struct d_object fcb;
fcb.flags=5;
fcb.time=100000;
fcb.offset=220;
strncpy(fcb.filename,"myfile",255);
int fd=open("testfile",O_RDWR);
write(fd,&fcb,sizeof(fcb));
close(fd);
int fd2 = open("testfile",O_RDONLY);
struct d_object new_fcb;
read(fd2,&new_fcb,sizeof(new_fcb));
printf("read from file testfile: %s\n",new_fcb.filename);
return 0;
}
P.S.:我沒有使用STREAM函數,因為這實際上是指在沒有它們的嵌入式操作系統上運行.我剛剛調整了* BSD / Linux的代碼,所以在提問時更有意義.
總結
以上是生活随笔為你收集整理的c 语言将字符串保存至文件,将带有char *字符串的C结构保存到文件中的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DotNetTextBox编辑器漏洞利用
- 下一篇: 汇龙安卓豆瓣顶贴软件的注意事项