广告

原创 系统调用方式文件编程《一》

2015-3-4 18:19 190 0 分类: MCU/ 嵌入式 文集: Linux应用程序开发学习
对于内核而言,所有打开的文件通过文件描述符引用。文件描述符是一个非负整数。当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符。当读或写一个文件时,使用open或creat返回的文件描述符标识该文件,将其作为参数传送给read或write。
2.1 打开文件
2.1.1 函数名       open 
2.1.2 函数原形    int open(const char *pathname,int flags);  int open(const char *pathname,int flags, mode_t mode);
2.1.3 函数功能   打开或者创建一个文件    
2.1.4 所属头文件 <sys/types.h> <sys/stat.h>  <fctl.h>
2.1.5 返回值   成功:文件描述符   失败:-1
2.1.6 参数说明  pathname:要打开的文件名(含路径)
                flags:文件打开的标志
                  O_RDONLY:只读
                  O_WRONLY:只写
                  O_RDWR:可读、可写
以上三个常量是必须包含其一的,下面的这两个是可选择的:
                  O_APPEND:以追加方式打开文件
                  O_CREAT:当打开的文件不存在的时候,创建该文件
                  mode:一定是flags中使用了O_CREAT标志,mode记录不同用户对创建的文件的权限。
2.2 创建文件     
2.1.1 函数名   creat
2.1.2 函数原形    int creat(const char* pathname, mode_t mode);   
2.1.3 函数功能  创建一个文件  
2.1.4 所属头文件 <sys/types.h> <sys/stat.h>  <fctl.h>
2.1.5 返回值   成功:文件描述符   失败:-1
2.1.6 参数说明  pathname:要打开的文件名(含路径)
               mode:创建的文件的读写权限
2.3 关闭文件
2.3.1 函数名  close
2.3.2 函数原形  int close(int fd);
2.3.3 函数功能  关闭一个文件
2.3.4 所属头文件 <unistd.h>
2.3.5 返回值     成功:0   失败:-1
2.3.6 参数说明   fd:待关闭的文件描述符
2.4 读文件
2.4.1 函数名     read
2.4.2 函数原形  ssize_t read(int fd, void *buf, size_t count);
2.4.3 函数功能   从一个打开的文件中读取数据
2.4.4 所属头文件  <unistd.h>
2.4.5 返回值      成功:返回读取的字节数  失败:-1
2.4.6 参数说明    fd:待读取的文件的文件描述符
             buf:读取来的数据存放在buf里。
             count:想要读取的字节数
2.5 写文件
2.5.1 函数名    write
2.5.2 函数原形  ssize_t write(int fd, const void *buf, size_t count);
2.5.3 函数功能   向一个打开的文件中写入数据
2.5.4 所属头文件  <unistd.h>
2.5.5 返回值      成功:写入到文件里的字节数  失败:-1
2.5.6 参数说明    fd:要写入数据的文件的文件描述符
                  buf:要写入的数据的存放位置
                 count:要写入的数据的字节数
广告

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
潇洒哥 2015-07-08 16:01
位操作符的使用技巧
在C语言编程中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效地提高程序运行的效...
潇洒哥 2015-04-04 17:39
finish shell分析之底层usart
rt_thread的finsh shell系统不愧是调试的一项利器,它可以除了完成一般shell的功能外,甚至还可以自定义命令。这个对功能单一的嵌入式系统来说是十分可贵的。在此我并不想对finsh...
潇洒哥 2015-04-01 21:29
__main() 和 main()
因为我们通常在BOOTLOADER中都已做好了比较细致的初始化工作,包括代码的搬运,所以我们最好别再调用库函数__main(),因为__main()作为ADS集成好的库函数,会对系统进行初始化设置...
潇洒哥 2015-03-26 22:54
RT-Thread学习之scons篇--解析rtconfig.py文件
rtconfig.py文件,主要用于指定编译器以及安装路径。除此之外,该文件中定义了大量的变量,这些变量包括编译选项,汇编选项,链接选项。   import os # toolchain...
潇洒哥 2015-03-26 22:53
RT-Thread学习之scons篇--SConsruct脚本文件解析
       scons的构建文件名称是统一的都称为SConstruct。其是scons所接受的编译脚本主文件。当然为了方便目录的组织,也允许在各个目录下面存放SConscript, 然后最上面S...
潇洒哥 2015-03-26 22:53
RT-Thread学习之scons篇--SConcript文件解析
SConscript文件是用来指定哪些文件会加入编译。先来分析下BSP主目录下的SConscript文件: import rtconfig Import('RTT_ROOT') fro...
我要评论
0
0
广告
关闭 热点推荐上一条 /1 下一条