文件编程1
文件编程2
文件编程3
文件编程4
文件属性:(ls -l)
(元数据:文件的访问权限,文件的大小,创建日期等)
目录也是文件之一
cache:应用程序的缓存文件
opt/run:正在执行着的程序信息,PID文件
opt/tmp:临时文件传递
内核:操作系统对于软硬件和系统资源分配的最重要的核心部分
系统调用:操作系统提供给用户的一组“特殊的”接口,用户可以通过这组接口来获取操作系统内核提供的服务
系统命令相对于API来说是更高层级
用户编程接口:系统调用并不是直接和程序员进行交互,它仅仅是一个通过软中断机制向内核提交请求,以获取内核服务的接口。在实际使用中程序员调用的通常是用户编程接口(API)
文件:
文件描述符:本质上是一个正整数 open函数 0-open-MAX()
file*
man手册页文件存放在/usr/share/man目录下。
语法格式:man [命令]
man命令内容组成的介绍:
1、用户命令的使用方法,可以使用的参数等
2、系统调用,只有系统才能执行的函数
3、库调用,大多是libc函数,
缓冲区:程序中每个文件都可以使用
磁盘文件->缓冲区->内核(cpu)
open系列函数:
creat:创建文件函数
int creat (文件描述符,创建模式)
创建模式
S_IRUSR 可读
S_IWUSR 可写
S_IXUSR 可执行
S_IXRWU 可读,可写,可执行
#include
#include
#include
#include
int main()
{
int f = creat("./test", S_IRWXU);
if(-1 == f)
{
printf("error\n");
return 1;
}
printf("f=%d\n",f);
return 0;
}
open(“文件名”,flag:打开的方式,mode如果没有创建那么自动略过)
O_RDONLY:以只读方式打开文件
O_WRONNLY:以只写方式打开文件
O_RDWR:以可读可写的方式打开
O_CREAT:如果文件存在就打开,如果不存在就创建。
O_APPEND:写文件的时候追加在文件末尾
出错返回值-1
#include
#include
#include
#include
int main()
{
int f = open("./test", O_RDWR|O_CREAT,0700);
if(-1 == f)
{
printf("error\n");
return 1;
}
printf("f=%d\n",f);
return 0;
}
write函数:向文件写入数据
write(文件描述符,写入的数据统计,写入的数据内存大小)
#include"unistd.h"
#include"stdio.h"
#include"sys/types.h"
#include"sys/stat.h"
#include"fcntl.h"
#include"string.h"
int main()
{
int fd = open("./test1.txt",O_RDWR|O_CREAT,0700);
if(-1 == fd)
{
perror("open!");
return 1;
}
printf("fd=%d\n",fd);
char buff[1024] = "hello";
write(fd,buff,strlen(buff));
return 0;
}
read:从文件读数据
read(文件描述符,读入某个变量(指针))
#include"unistd.h"
#include"stdio.h"
#include"sys/types.h"
#include"sys/stat.h"
#include"fcntl.h"
#include"string.h"
int main()
{
int fd = open("./test1.txt",O_RDWR|O_CREAT,0700);
if(-1 == fd)
{
perror("open!");
return 1;
}
printf("fd=%d\n",fd);
char buff[1024] = "hello";
write(fd,buff,strlen(buff));
close(fd);
char buffer[1024] ={
0};
int fd1 = open("./test1.txt",O_RDWR|O_CREAT,0700);
if(-1 == fd1)
{
perror("open");
return 1;
}
read(fd,buffer,16);
printf("%s\n",buffer);
close(fd1);
return 0;
}