一、打开文件是乱码
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 }