linux 寫結構體到文件

將整數寫入到文件

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include<stdio.h>
#include <unistd.h>
#include <string.h>#include <stdlib.h>
int main()
{int fd;int data=100;int data2=0;fd=open("./file1",O_RDWR);int n_write=write(fd,&data,sizeof(int));//write的第二個參數是地址,并不一定非得是指針,所以可用&獲取地址,read同理lseek(fd,0,SEEK_SET);int n_read=read(fd,&data2,sizeof(int));printf("read %d, write %d,context %d\n",n_read, n_write,data2);close(fd);return 0;
}
//文件中的數據有可能亂碼,但并不影響程序對他的判斷

將結構體寫入到文件

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include<stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
struct text
{int a;char c;
};
int main()
{int fd;struct text data={100,'a'};struct text data2;fd=open("./file1",O_RDWR);//"./file1"    is    wenjianlujingint n_write=write(fd,&data,sizeof(struct text));//write  return zijie de changdulseek(fd,0,SEEK_SET);int n_read=read(fd,&data2,sizeof(struct text));printf("read %d,context %c\n",data2.a,data2.c);close(fd);return 0;
}

寫結構體數組到文件

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include<stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
struct text
{int a;char c;
};
int main()
{int fd;struct text data[2]={{100,'a'},{101,'b'}};struct text data2[2];fd=open("./file1",O_RDWR);//"./file1"    is    wenjianlujingint n_write=write(fd,&data,sizeof(struct text)*22);//write  return zijie de changdulseek(fd,0,SEEK_SET);int n_read=read(fd,&data2,sizeof(struct text)*2);printf("read1 %d,context1 %c\n",data2[0].a,data2[0].c);printf("read2 %d,context2 %c\n",data2[1].a,data2[1].c);close(fd);return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272515.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272515.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272515.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

程序員常訪問的國外技術交流網站

技術人員經常會在各種技術交流社區游逛&#xff0c;大家互相學習、交流、分享、幫助。互聯網拉近了地球人的距離&#xff0c;讓全世界的技術人員可以聚集在一起分享交流。當然因為多方面原因&#xff0c;通常最新最權威的技術知識傳到國內存在一定“時差”。本文將給大家分享技…

標準C庫對文件操作的引入

modeopen和fopen的區別 fopen、fread、fwrite的使用 &#xff08;1&#xff09;fopen FILE *fopen(const char *path, const char *mode);path&#xff1a;文件路徑 mode&#xff1a;以什么權限打開&#xff0c;要用雙引號 它的返回值并不是文件描述符 若失敗返回NULL 若操作成…

轉載愛哥自定義View系列--Paint詳解

上圖是paint中的各種set方法 這些屬性大多我們都可以見名知意&#xff0c;很好理解&#xff0c;即便如此&#xff0c;哥還是帶大家過一遍逐個剖析其用法&#xff0c;其中會不定穿插各種繪圖類比如Canvas、Xfermode、ColorFilter等等的用法。 set(Paint src) 顧名思義為當前畫筆…

只有程序員才懂這些黑色幽默!

也是機緣巧合&#xff0c;讓我一個之前工作從未接觸過程序員的人&#xff0c;現在成天和程序員打交道&#xff0c;要知道&#xff0c;不懂技術&#xff0c;往往他們想和你幽默的搞笑一下&#xff0c;未必能讀懂。都說程序員情商低&#xff0c;不愛說話&#xff0c;比較悶騷。可…

tiny4412 linux+qtopia nfs網絡文件系統的掛載

1,首先確定uboot啟動內核的bootargs參數 Linux-CommandLine root/dev/nfs nfsroot192.168.1.131:/home/tiny4412/rootfs_qtopia_qt4 ip192.168.1.230:192.168.1.131:192.168.1.1:255.255.255.0::eth0:off rootfstypenfs consolettySAC0,115200 init/linuxrc ctp2 skipcaliy uh…

Linux 進程、父進程、子進程

進程和程序的區別 一、 進程是動態的&#xff0c;程序是靜態的&#xff1a;程序是有序代碼的集合&#xff0c;進程是程序的執行。進程有核心態/用戶態。 二、 進程是暫時的&#xff0c;程序是永久的&#xff1b;進程是一個狀態變化的過程&#xff0c;程序可以長久保存 三、進…

幾款開源富文本編輯器優缺點比較

1、百度UEditor 優點&#xff1a;插件多&#xff0c;基本滿足各種需求&#xff0c;類似貼吧中的回復界面。缺點&#xff1a;不再維護&#xff0c;文檔極少&#xff0c;使用并不普遍&#xff0c;圖片只能上傳到本地服務器&#xff0c;如果需要上傳到其他服務器需要改動源碼&…

C程序的儲存空間是如何分配?

可執行程序包括BSS段、數據段、代碼段。 在類UNIX系統下可使用size命令查看可執行文件的段大小信息。如size a.out&#xff1a; ~/Desktop/MyC$ size a.outtext data bss dec hex filename1672 600 8 2280 8e8 a.out1.數據段存放已初始化的全…

詳細講解Android的網絡通信(HttpUrlConnection和HttpClient)

前言&#xff0c;Android的網絡通信的方式有兩種&#xff1a;使用Socket或者HTTP&#xff0c;今天這一篇我們詳細講解使用HTTP實現的網絡通信&#xff0c;HTTP又包括兩種方式編程方式&#xff1a; &#xff08;1&#xff09;HttpUrlConnection&#xff1b; &#xff08;2&#…

常見通信協議HTTP、TCP、UDP的簡單介紹

TCP HTTP UDP:都是通信協議&#xff0c;也就是通信時所遵守的規則&#xff0c;只有雙方按照這個規則“說話”&#xff0c;對方才能理解或為之服務。TCP HTTP UDP三者的關系:TCP/IP是個協議組&#xff0c;可分為四個層次&#xff1a;網絡接口層、網絡層、傳輸層和應用層…

創建進程相關函數

fork函數 pid_t fork(void); fork函數調用成功&#xff0c; 返回兩次 在fork函數執行完畢后 如果創建新進程成功&#xff0c;則出現兩個進程 一個是子進程&#xff0c;一個是父進程 在子進程中&#xff0c;fork函數返回0 在父進程中&#xff0c;fork返回新創建子進程的進程ID…

實現Windows和Linux之間的文件共享

一、windows 向linux共享文件(這里都是以win10和ubuntu為例)首先&#xff0c;打開網絡共享中心。如圖1圖1打開更改高級共享設置&#xff08;圖2&#xff09;圖 2選擇啟用網絡發現以及啟用文件和打印機共享&#xff0c;然后點擊保存更改。接著&#xff0c;選擇你要共享的文件夾&…

雞啄米MFC教程筆記之七:對話框:為控件添加消息處理函數

MFC為對話框和控件等定義了諸多消息&#xff0c;我們對它們操作時會觸發消息&#xff0c;這些消息最終由消息處理函數處理。比如我們點擊按鈕時就會產生BN_CLICKED消息&#xff0c;修改編輯框內容時會產生EN_CHANGE消息等。一般為了讓某種操作達到效果&#xff0c;我們只需要實…

進程的退出方式以及僵尸進程和孤兒進程

&#xff08;1&#xff09;正常退出 &#xff08;2&#xff09;異常退出 檢查wait和waitpid所返回的終止狀態的宏 宏說明WIFEXITED(status)若為正常終止子進程返回的狀態&#xff0c;則為真。對于這種情況可執行WEXITSTATUS(status)&#xff0c;取子進程傳送給exit、_exit或_…

java中的動態代理----自己手動實現

代碼使用了common-io&#xff0c;需要其jar 1 接口 Java代碼 public interface Pruduct { void selling(); } 2 書籍類 Java代碼 public class Book implements Pruduct { Override public void selling() { try { Thread.sleep(1000…

Code Project精彩系列(1)

ApplicationsCrafting a C# forms Editor From scratchhttp://www.codeproject.com/csharp/SharpFormEditorDemo.asp建立一個類似C#的環境, 實現控件拖拉&#xff0c;屬性Packet Capture and Analayzer網絡封包截獲http://www.codeproject.com/csharp/pacanal.aspA tool to cha…

linux進程---exec族函數(execl, execlp, execv, execvp, )解釋和配合fork的使用

exec族函數函數的作用&#xff1a; exec函數族的作用是根據指定的文件名找到可執行文件&#xff0c;并用它來取代調用進程的內容&#xff0c;換句話說&#xff0c;就是在調用進程內部執行一個可執行文件。這里的可執行文件既可以是二進制文件&#xff0c;也可以是任何L…

Code Project精彩系列(2)

Windows FormsFireball Resourcer把各種資源嵌入應用程序資源Window Hiding with C#隱藏窗體, 似乎是其它運行的窗體 JProper Threading in Winforms .NETWindows Forms User Settings in C#使用VS設置設定forms, coolA Pretty Good Splash Screen in C#一個自繪可愛屏幕A curt…

python bool值要注意的一些地方

1、像(),[],{}這三個是可以通過bool(()),bool([]),bool({})轉化為bool值的&#xff1b;且它們轉化后的結果為False。但是這三個值它本身并不等于False、切記不可以與False 直接進行比較。 #!/usr/bin/python #!coding:utf-8 import sysif __name__ "__main__":falseL…

system函數和popen函數使用方法

system int system(const char *command);system&#xff08;&#xff09;函數的返回值如下&#xff1a; 成功&#xff0c;則返回進程的狀態值&#xff1b; 當sh不能執行時&#xff0c;返回127&#xff1b; 失敗返回-1&#xff1b; 其實是封裝后的exec&#xff0c;函數源代碼在…