Linux下C编程入门笔记——文件IO操作(一)
2008-12-19 10:31
806 查看
linux文件的IO编程应该算是每个入门者最先涉及的,我也不例外。希望通过BLOG的形式,记录下自己每天学习的点点滴滴,我相信滴水穿石,尽管记录的文字都比较简单,对于高手而言抑或没有什么技术含量,但我坚信坚持到最后,就是大牛。
好了,废话说了不少了,开始我的笔记吧。
LINUX下对文件的操作同其它平台系统一样,无外乎创建文件,打开文件,关闭文件,读文件,写文件,拷贝文件,对文件进行权限的控制和管理(这涉及到锁,以后再讨论),另外在这里有一点一定要牢记,那就是在Linux操作系统里,硬件设备也当作文件来对待,我认为这样最大的好处是可以实现文件和设备的统一管理,比如我在上面提到的操作(打开文件,关闭文件,读文件,写文件.....),也通用于硬件设备的操作(打开设备,关闭设备,读设备件,写设备......).明白了这一点,就可以很发挥想象怎么去搞定串口,并口,USB设备........等一系列外围设备了.(是不是很吃惊).
文件IO操作是Linux环境编程基础中的基础.语法和API上看似简单,但真正的应用起来,有时恐怕并不如我最开始想象的那么轻松,所以既然是菜鸟入门,还是要把基础打好.为了让自己找到乐趣和自信,我决定从最简单的函数开始.creat创建文件.
create函数的原型如下:(大家可以查询manpages.chm)
int creat(const char *pathname, mode_t mode);
参数代表的意思,manpages里讲得确实已经非常清楚了.下面我写了一个简单的例子.(这个例子确实是太简单啦,但是养成动手的好习惯会让每一位程序员受益)
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
void create_file(char *filename){
if(creat(filename,0755)<0){
printf("create file %s failure!/n",filename);
exit(EXIT_FAILURE);
}else{
printf("create file %s success!/n",filename);
}
}
int main(int argc,char *argv[]){
int i;
if(argc<2){
perror("you haven't input the filename,please try again!/n");
exit(EXIT_FAILURE);
}
for(i=1;i<argc;i++){
create_file(argv[i]);
}
exit(EXIT_SUCCESS);
}
这个例子没有太多要说的了,但还是想啰嗦一下,创建文件时,脑海里为何飘出一个0755,这是文件的读写执行权限,就是RWX和4 2 1码的对应关系相加,manpages里也有详细说明
运行的结果如下:
[hacker@localhost Project]$ ./create temp1 temp2
create file temp1 success!
create file temp2 success!
好了,废话说了不少了,开始我的笔记吧。
LINUX下对文件的操作同其它平台系统一样,无外乎创建文件,打开文件,关闭文件,读文件,写文件,拷贝文件,对文件进行权限的控制和管理(这涉及到锁,以后再讨论),另外在这里有一点一定要牢记,那就是在Linux操作系统里,硬件设备也当作文件来对待,我认为这样最大的好处是可以实现文件和设备的统一管理,比如我在上面提到的操作(打开文件,关闭文件,读文件,写文件.....),也通用于硬件设备的操作(打开设备,关闭设备,读设备件,写设备......).明白了这一点,就可以很发挥想象怎么去搞定串口,并口,USB设备........等一系列外围设备了.(是不是很吃惊).
文件IO操作是Linux环境编程基础中的基础.语法和API上看似简单,但真正的应用起来,有时恐怕并不如我最开始想象的那么轻松,所以既然是菜鸟入门,还是要把基础打好.为了让自己找到乐趣和自信,我决定从最简单的函数开始.creat创建文件.
create函数的原型如下:(大家可以查询manpages.chm)
int creat(const char *pathname, mode_t mode);
参数代表的意思,manpages里讲得确实已经非常清楚了.下面我写了一个简单的例子.(这个例子确实是太简单啦,但是养成动手的好习惯会让每一位程序员受益)
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
void create_file(char *filename){
if(creat(filename,0755)<0){
printf("create file %s failure!/n",filename);
exit(EXIT_FAILURE);
}else{
printf("create file %s success!/n",filename);
}
}
int main(int argc,char *argv[]){
int i;
if(argc<2){
perror("you haven't input the filename,please try again!/n");
exit(EXIT_FAILURE);
}
for(i=1;i<argc;i++){
create_file(argv[i]);
}
exit(EXIT_SUCCESS);
}
这个例子没有太多要说的了,但还是想啰嗦一下,创建文件时,脑海里为何飘出一个0755,这是文件的读写执行权限,就是RWX和4 2 1码的对应关系相加,manpages里也有详细说明
运行的结果如下:
[hacker@localhost Project]$ ./create temp1 temp2
create file temp1 success!
create file temp2 success!
相关文章推荐
- Linux下C编程入门笔记——文件IO操作(二)
- Linux下C编程入门笔记——文件IO操作
- linux系统编程之文件与IO(八):文件描述符相关操作-dup,dup2,fcntl
- 七、Linux系统编程-文件和IO(五)fcntl函数及常用操作、文件锁
- Linux学习记录--文件IO操作相关系统编程
- Linux编程——文件 IO操作
- linux操作系统下c语言编程入门 -- (3)文件操作
- linux操作系统下c语言编程入门--文件操作
- 【Python学习笔记】IO编程:操作文件和目录
- Linux下C编程-----IO/文件操作/内存映射 实现简单记录存储(3)
- 【Linux环境编程入门】四、文件操作的系统调用
- Linux下C编程-----IO/文件操作 模拟linux ls程序显示文件系统树形结构(2)
- Linux入门笔记——文件操作命令2
- 【Linux 入门笔记】文件系统基本结构和操作
- Linux系统编程:标准IO操作--索引对应路径下的文件
- Linux学习记录--文件IO操作相关系统编程