文件编程1

文件编程1

文件编程2

文件编程3

文件编程4

Linux文件:文件本身包含的数据(打开文件可以看到的数据信息)

文件属性:(ls -l)
(元数据:文件的访问权限,文件的大小,创建日期等)
目录也是文件之一
cache:应用程序的缓存文件
opt/run:正在执行着的程序信息,PID文件
opt/tmp:临时文件传递

操作系统:

内核:操作系统对于软硬件和系统资源分配的最重要的核心部分
系统调用:操作系统提供给用户的一组“特殊的”接口,用户可以通过这组接口来获取操作系统内核提供的服务
文件编程1_第1张图片
系统命令相对于API来说是更高层级
用户编程接口:系统调用并不是直接和程序员进行交互,它仅仅是一个通过软中断机制向内核提交请求,以获取内核服务的接口。在实际使用中程序员调用的通常是用户编程接口(API)
文件编程1_第2张图片
文件:
文件描述符:本质上是一个正整数 open函数 0-open-MAX()
file*
文件编程1_第3张图片

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;
}

你可能感兴趣的:(Linux学习笔记,linux)