Linux基本文件操作
来源:互联网 发布:php简历模板免费下载 编辑:程序博客网 时间:2024/06/05 02:37
打开文件函数
open函数用于在linux中打开一个文件,若文件不存在,先创建再打开,若成功返回文件操作符,不然返回-1.
#include<sys/stat.h>
#include<sys/types.h>
#include<fcntl.h>
int open(const char *pathname,int flag);
int open(const char *pathname,int flag, mode_t mode);
以上为open函数的标准调用格式。open函数的各个参数实例说明如下。
1.pathname
pathname 是一个指针变量,用于传递包含了路径的完整文件名称,其典型应用实例如"/dev/log"。
2.flags参数
0:只读 1:只写 2:读写
以上关键字是唯一的,不能用or来链接。此外可选参数有:
O_CREAT 当文件不存在时将创建此文件。
O_EXCL 用于测试一个文件是否存在,存在则报错,不存在则创建。
O_NOCTTY 当pathname指向一个终端设备时,它将不再是进程控制的终端。
O_TRUNC 存在即截断。
O_APPEND 追加方式打开,每次进行写操作时,文件指针都会被放置到文件末尾。
O_NONBLOCK/O_NDELAY 以无阻方式打开,仅对进程间通信的操作很有用。
O_SYNC 文件以I/O方式打开。任何写操作都会使进程被阻塞。
这些可以用"|"符号连接。
3.mode参数
考虑到要打开的文件可能不存在,可以使用open第三个参数。
支持或运算。
4.Open函数应用实例。
#include<unistd.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<stdio.h>
int main(void)
{
int temp;
temp=open("./examtext",ORDWR|O_CREAT,S_IRWXU);
printf("%d\n",temp);
temp=close(temp);
printf("%d\n",temp);
exit(0);
}
结果为
3
0
关闭文件函数
close函数用于关闭一个已经打开的文件。如果关闭成功则返回0,否则返回-1.
标准调用格式如下:
#include<unistd.h>
int close(int fd);
创建文件函数
create函数用于在Linux中创建一个文件,如果文件创建成功返回该文件对应的文件描述符,反之返回-1.create函数的标准调用格式如下:
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<const char *pathname,mode_t mode);
1.pathname(同open)
2.mode(同open)
3create的应用实例
#inlcude<fcntl.h>
#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
int main(int argc,char *argv[ ]}
{
int temp;
if(argc!=2)
{
printf("run error\n");
return 1;
}
temp = creat (*(argv+1),S_IRWXU);
printf("%d\n",temp;
return 0;
}
写文件函数
标准调用格式如下:
#include<unistd.h>
ssize_t write(int fd,void *buf, size_t count);
1.fd参数说明
fd参数是待写入文件的文件描述符。
2.buf参数说明
buf是一个指向缓冲区的指针待写入数据必须存放在该缓冲区内
3.count参数说明
count表示本次操作将要写入文件的数据的字节数。
4.write的应用示例
#include<fcnt1.h>
#include<unistd.h>
#include<stdio.h>
int main(int argc,char *argv[ ])
{
int fileID,temp;
char wbuf[15]="this is a test!";
fileID =open(*(argv+1),O_RDWR|O_CREAT,S_IRWU);
printf("%d\n",fileID);
temp=write(fileID,wbuf,15);
printf("%d\n",temp);
close(fileID);
return 0;
}
文件偏移定位函数
每个打开的文件都有一个与其相关的当前文件偏移量(也叫文件指针),通常是一个非负整数,读写操作都是从个当前文件的 文件偏移处开始,并使偏移量增加所读写的字节数。
lseek函数的标准调用格式说明如下:
#include<sys/types.h>
#include<unistd.h>
off_t leek(int fds, off_t offset,int whence);
1.fds参数说明
fds参数是待写入文件的文件描述符。
2.off_set
off_set是文件偏移量,指的是每一次对文件读写操作所需移动的距离,单位为字节。
3.Whence参数说明
SEEK_SEK:将偏移量设置为文件开始的为之后的offset个字节。
SEEK_CUR:将偏移量设置为当前偏移量之后的offset个字节。
SEEK_END:将偏移量设置为当前文件长度加上off_set个字节。
4.lseek的应用实例
#include<fcntl.h>
#include<stdio.h>
int main(int argc,argv[ ])
{
int temp,seektemp,i,j;
int fileID;
char wbuf[ 17]=this is a test!\r\n";
if(argc!=2)
{
printf("run error!\n);
return 1;
}
fileID = open (*(argv+1),O_RDWR|O_CREAT,S_IRWXU);
temp =write (fileID,wbuf,sizeof(wbuf));
seektemp=lseek(fileID,0,SEEK_CUR);
for(i =0;i<10;i++)
{
j=sizeof(wbuf)*(i+1);
seektemp = lseek(fileID,j ,SEEK_SET);
temp = write(fileID,wbuf,sizeof(wbuf));
}
close(fileID);
return 0;
}
读文件函数
read函数从一个已经打开的linux文件中读取指定长度的数据,如果操作成功则返回读到的字节,如果已达到文件的末端则返回0;如果出错返回-1.
read函数的标准调用格式说明如下:
#include<unistd.h>
ssize_t read(int fd,void *buf,size_t count);
1.fd参数说明
fd参数是待读的文件描述符
2.buf参数说明
存放读出数据的缓冲区指针。
3.count参数说明
count是待读取数据长度,如果count为0,则read函数返回0并且没有七他结果,若count大于32767,则结果不能确定。
read的应用实例:
#include<fcnl.h>
#include<unistd.h>
#include<stdio.h>
#define PERMS 0666
#define DUMMY 0
#define MAXSIZE 1024
int main(int argc,char *argv[ ])
{
int sourcefile ID,targetfileID;
int readNO=0;
char WRBuf=0;
if(argc!=3)
{
printf("run error\n");
return 1;
}
if((sourcefileID=open(*(argv+1),O_RDONLY,DUMMY)==-1)
{
printf("Source file open error!\n");
return 2;
}
if((targetfileID=open(*(argv+2),O_WRONLY|O_CREAT,PERMS))==-1)
{
printf("Target file open error!\n");
return 3;
}
while((readNO=read(sourcefileID,WRBuf,MAXSIZE))>0)
if(write(targetfileID,WRBuf,readNO)!=readNO)
{
printf("Target file write error!\n);
return 4;
}
close(sourcefileID);
close(targetfileID);
return 0;
}
- Linux文件基本操作
- Linux文件基本操作
- Linux文件基本操作
- Linux文件基本操作
- Linux基本文件操作
- linux 基本文件操作
- Linux 基本命令(文件操作)
- linux 基本文件操作命令
- linux文件基本操作管理
- Linux文件基本操作管理
- Linux文件基本操作管理
- Linux文件夹/文件基本操作
- LINUX文件的基本操作
- Linux-基本操作-查找文件
- Linux文件的基本操作
- Linux基本命令:文件操作
- linux 一些基本文件操作
- linux基本命令操作-文件
- Linux安装
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- 数据结构与算法分析笔记与总结(java实现)--排序13:相邻两数最大差值练习题
- C++ cout格式化输出
- saltstack 安装及配置(Windows篇)
- Linux基本文件操作
- 编译busybox的笔记
- linux串口编程参数配置详解
- SVN Files 的值“ < < < < < < < .mine”无效。路径中具有非法字符。
- 【转】java对音频文件的频谱分析
- tcp协议完美博客网址
- QML 和QtQuick2
- Find the Difference
- Java IO流学习总结