Linux C 文件管理2

来源:互联网 发布:可视化编程的最大优点 编辑:程序博客网 时间:2024/05/25 05:35


Linux文件管理

系统调用(API):操作系统提供给用户的一组特殊接口,用户可用API来获得操作系统的服务。


    系通调用          内核

   

程序运行空间   内核空间

               用户空间

linux一点哲学:一切皆文件

linux文件:普通文件、目录文件、链接文件、设备文件

 

文件:系统资源的一个抽象,对系统资源进行访问的一个通用接口

用文件的好处:简化系统编程接口的设计

 

文件描述符(fb)   1.非负整数

                   2.可表示各种类型打开的文件

                   3.使用可指定所操作的文件

 

使用fb先会产生三个文件   标准输入  0         键盘

                          标准输出  1         显示器    有缓冲

                          标准错误  2         显示器    无缓冲

 

用文件时要调用三个头文件   #include <sys/types.h>

                           #include <sys/stat.h>

                           #include <fcntl.h>

                           #include <unistd.h>   

打开open

int  open ( const  char * pathname , int flags , mode_t  mode);

例:int fb;   fb = opne (“ a.txt “, O_CREAT | O_RDWR ,0755

 

要打开或创建的文件的名字                             创建时权限

  打开权限:

O_CREAT         打开的文件若不存在就创建

O_RDONLY       只读

O_WRONLY       只写

O_RDWR         可读写

 

系统调用—读 int  read( int fd ,const void  *buf  ,size_t length)

            从文件中读到缓冲区,返回读入的个数

系统调用—写 int  write( int fd ,const void  *buf  ,size_t length)

           把缓冲区的写入文件,返回写的个数

系统调用—定位  int   lseek(int  fd,偏移量,  起始位置)

例:int (int  fd , 0 ,SEEK_SET)

SEEK_SET  开头

SEEK_CUR  当前

SEEK_END  

 

closefd) 关闭文件

库函数:标准I/O函数实际上是对底层系统的封装

 

不用文件描述符,使用文件指针         指向FILE

FILE * fp

每个进程启动后打开三个流 

                         stdin

                           stdout

                           stderr

 

库函数—打开:FILE * fopen(const  char  * filename, const  char  *mode)

                             文件名                  打开模式

 

r”  只读,文件必须已存在

w” 只写,文件不存在则创建,存在则清空再写入

a” 在文件末尾追加数据

r+”允许读和写,文件必须已存在

w+”允许读和写,不存在则创建,存在则清空再写入

a+” 允许读和追加数据,文件不存在则创建

 

文件的作用仅仅是保存

库函数—写和读

fwrite ( void  * buf,size  ,int   n , FILE  * stream)

fread ( void  * buf,size  ,int   n , FILE  * stream)

库函数—定位

fseek(fp   ,偏移量  ,起始位置)

                                        操作字符

fgetcfputcfprintffscanf:                 操作流级的

例子:   ch = fgetc( stdin );

       fputc( ch , stout);

fprintf(stout  ,”input  a string:\n”);

fscanf(stdin,” %s” ,buf_r);

 

  puts(char *)                    gets(char * )

  fputs(char * ,FILE *)             fgets(char  *,size  ,FILE  *)

 

fputsfgets           操作字符串

 

printf         格式保存


0 0
原创粉丝点击