C语言函数的读写

文件打开关闭函数:fopen()和fclose() <FILE *fopen(char *filename, char *mode)| int fclose(FILE *fp)>

字符读写函数 :fgetc()和fputc()<int fgetc(FILE *fp)|int fputc(int ch, file *fp)>

字符串读写函数:fgets()和fputs()<char *fgets(char *str, int num, FILE *fp)| int fputs(char *str, file *fp)>

数据块读写函数:fread()和fwrite()<int fwrite(void *buf, int size, int count, FILE *fp)|int fread(void *buf, int size, int count, FILE *fp)>

格式化读写函数:fscanf()和fprinf()<int fscanf(FILE *fp, char *format,…)|int fprintf(FILE *fp, char *format,…)>

mode有下列几种形态字符串:
r 打开只读文件,该文件必须存在。
r+ 打开可读写的文件,该文件必须存在。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。不过在POSIX系统,包含Linux都会忽略该字符。由fopen()所建立的新文件会具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)权限,此文件权限也会参考umask值。

 

 1 #include <stdio.h>
 2 
 3 int main ()
 4 {
 5     FILE* FPCacl;
 6     
 7     if ( (FPCacl=fopen("c:\\1.txt","w")) == NULL )
 8     {
 9         printf("Open file failure!\n");
10     }
11     fprintf(FPCacl," 1: = 0x%x\n",(0x1u << 3) | (0xA5 << 24));
12     fprintf(FPCacl," 2: = 0x%x\n", (0x37 << 16) | (0x8 << 8) | (0x1u << 3) | (0x1u << 0) );
13     fprintf(FPCacl," 3: = 0x%x\n", (0x37 << 16) | (0x8 << 8) | (0x1u << 3) | (0x1u << 0) | (0x1u << 24));
14     fprintf(FPCacl," 4: = 0x%x\n", (0x1u << 29) | (0x0f << 16) | (0x01 << 8) | 0x03);
15     fprintf(FPCacl," 5: = 0x%x\n", ( ((0x0u << 4)|(0x2u << 0))&(~0x3u))  | (0x1u << 0));
16     fprintf(FPCacl," 6: = 0x%x\n", (0x0u << 4)|(0x2u << 0));
17     fclose(FPCacl);
18     
19     printf(" 1: = 0x%x\n", (0x1u << 3) | (0xA5 << 24));
20     printf(" 2: = 0x%x\n", (0x37 << 16) | (0x8 << 8) | (0x1u << 3) | (0x1u << 0) );
21     printf(" 3: = 0x%x\n", (0x37 << 16) | (0x8 << 8) | (0x1u << 3) | (0x1u << 0) | (0x1u << 24));
22     printf(" 4: = 0x%x\n", (0x1u << 29) | (0x0f << 16) | (0x01 << 8) | 0x03);
23     printf(" 5: = 0x%x\n", ( ((0x0u << 4)|(0x2u << 0))&(~0x3u))  | (0x1u << 0));
24     printf(" 6: = 0x%x\n", (0x0u << 4)|(0x2u << 0));          
25 
26     return 0;    
27 }
View Code

 

 

 

 

posted @ 2013-07-12 20:55  蓬莱仙羽  阅读(413)  评论(0编辑  收藏  举报