写一个整型数,写一个结构体,写两个结构体到文件中去

一、打开文件是乱码

   

  1 #include<stdio.h>
  2 #include<fcntl.h>
  3 #include<unistd.h>
  4 #include<stdlib.h>
  5 #include<string.h>
  6 
  7 int main(int argc,char **argv)
  8 {
  9         if(argc!=2){
 10                 printf("param error\n");
 11                 exit(-1);
 12         }
 13         printf("totall num of param is =%d\n",argc);
 14         printf("num 1 param is %s\n",argv[0]);
 15         printf("num 2 param is %s\n",argv[1]);
 16 
 17         int fdsrc;
 18         fdsrc = open(argv[1],O_RDWR|O_CREAT,0600);
 19         if(fdsrc == -1){
 20                 printf("open file failed\n");
 21         }
 22 
 23         int data1=100;
 24         int data2;
 25 
 26         int n_write = write(fdsrc,&data1,sizeof(int));
 27         if(n_write == -1){
 28                 printf("write failed\n");
 29         }
 30 
 31         lseek(fdsrc,0,SEEK_SET);
 32         int n_read = read(fdsrc,&data2,sizeof(int));
 33         if(n_read == -1){
 34                 printf("read failed\n");
 35         }
 36 
 37         printf("read data is %d",data2);
 38         printf("read %d byte \n,write %d byte to fddes file\n",n_read,n_write);
 39 
 40         close(fdsrc);
 41 
 42         return 0;
 43 }

二、

  1 #include<stdio.h>
  2 #include<fcntl.h>
  3 #include<unistd.h>
  4 #include<stdlib.h>
  5 #include<string.h>
  6 
  7 struct test
  8 {
  9         int data;
 10         char data2;
 11 };
 12 
 13 int main(int argc,char **argv)
 14 {
 15         if(argc!=2){
 16                 printf("param error\n");
 17                 exit(-1);
 18         }
 19         printf("totall num of param is =%d\n",argc);
 20         printf("num 1 param is %s\n",argv[0]);
 21         printf("num 2 param is %s\n",argv[1]);
 22 
 23         int fdsrc;
 24         fdsrc = open(argv[1],O_RDWR);
 25         if(fdsrc == -1){
 26                 printf("open file failed\n");
 27         }
 28 
 29         struct test t1 = {100,'c'};
 30         struct test t2 ;
 31 
 32         int n_write = write(fdsrc,&t1,sizeof(struct test));
 33         if(n_write == -1){
 34                 printf("write failed\n");
 35         }
 36 
 37         lseek(fdsrc,0,SEEK_SET);
 38         int n_read = read(fdsrc,&t2,sizeof(struct test));
 39         if(n_read == -1){
 40                 printf("read failed\n");
 41         }
 42 
 43         printf("t2.data1=%d,t2.data2=%c\n",t2.data,t2.data2);
 44         printf("read %d byte \n,write %d byte to fddes file\n",n_read,n_write);
 45 
 46         close(fdsrc);
 47 
 48         return 0;
 49 }

 三、

 

  1 #include<stdio.h>
  2 #include<fcntl.h>
  3 #include<unistd.h>
  4 #include<stdlib.h>
  5 #include<string.h>
  6 
  7 struct test
  8 {
  9         int data;
 10         char data2;
 11 };
 12 
 13 int main(int argc,char **argv)
 14 {
 15         if(argc!=2){
 16                 printf("param error\n");
 17                 exit(-1);
 18         }
 19         printf("totall num of param is =%d\n",argc);
 20         printf("num 1 param is %s\n",argv[0]);
 21         printf("num 2 param is %s\n",argv[1]);
 22 
 23         int fdsrc;
 24         fdsrc = open(argv[1],O_RDWR);
 25         if(fdsrc == -1){
 26                 printf("open file failed\n");
 27         }
 28 
 29         struct test t1[2] ={{100,'c'},{200,'d'}};
 30         struct test t2[2] ;
 31 
 32         int n_write = write(fdsrc,&t1,sizeof(struct test)*2);
 33         if(n_write == -1){
 34                 printf("write failed\n");
 35         }
 36 
 37         lseek(fdsrc,0,SEEK_SET);
 38         int n_read = read(fdsrc,&t2,sizeof(struct test)*2);
 39         if(n_read == -1){
 40                 printf("read failed\n");
 41         }
 42 
 43         printf("t2.data1[0]=%d,t2.data2[0]=%c\n",t2[0].data,t2[0].data2);
 44         printf("t2.data1[1]=%d,t2.data2[1]=%c\n",t2[1].data,t2[1].data2);
 45         printf("read %d byte \n,write %d byte to fddes file\n",n_read,n_write);
 46 
 47         close(fdsrc);
 48 
 49         return 0;
 50 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值