嵌入式操作系统开发(第十一节)

嵌入式操作系统开发

学习内容:

一:Linux文件:

1.文件本身包含的数据(打开文件可以看到的数据信息)
2.文件属性(ls -l)(元数据:文件的访问权限,文件的大小,创建日期前)
3.目录也是文件之一(当创建一个新的目录的时候,系统自动创建两个文件项)

. 当前目录
..上级目录

在这里插入图片描述

/local:用户个人安装文件
/src:源代码
/bin中 - 用户二进制文件
/sbin目录 - 高级命令
/etc - 配置文件
/dev - 设备文件
/sois-保存内核信息
/proc - 保存内核信息
/var - 日志文件
/usr - 用户安装程序(软件一般安装到这个目录)
/tmp - 临时文件
/home -用户主目录
/boot - 存放启动文件
/lib - 系统库
/user/include-存放头文件
/usr/bin - 存放多数日常应用程序
/usr/local - 用户个人安装软件
/usr/sbin - 在当用户模式下,不用的系统管理程序
/usr/src - 存放源程序
/var/cache:应用程序的缓存文件
/var/lib:应用程序的信息,数据
/var/local:usr/local中的程序信息
/var/lock:锁文件
/var/log:日志文件
/var/opt: /opt中程序信息,数据
/var/run:正在执行的程序信息,PID文件
/var/tmp:临时文件
/media:文件系统的挂载点

Linux文件类型:(第一节)

二:操作系统:

内核:操作系统对于软硬件和系统资源分配的最重要的核心部分
系统调用:操作系统提供给用户的一组“特殊”的接口,用户可以通过这组接口来获取系统内核提供的服务
用户编程接口:系统调用并不是直接和程序员进行交互,它仅仅时一个通过中断机制向内核提交请求,以获取内核服务的接口,在实际使用中程序员调用的通常是用户编程接口(API)

在这里插入图片描述

在这里插入图片描述

三:文件:

文件描述:本质是一个正整数,open函数 0-OPEN-MAX
file*

man (1.2.3.4.5.6.7.8)open

1、Standard commands (标准命令)
2、System calls (系统调用)
3、Library functions (库函数)
4、Special devices (设备说明)
5、File formats (文件格式)
6、Games and toys (游戏和娱乐)
7、Miscellaneous (杂项)
8、Administrative Commands (管理员命令)

内存:

在这里插入图片描述

缓冲区:程序中每个文件都可以使用
磁盘文件-> 缓冲-> 内核(cpu)

四:open系列函数:

1.int creat :(文件描述符,创建模式)

creat:创建文件函数
创建模式
S_IRUSR 可读
S_IWUSR 可写
S_IXUSR 可执行
S_IXRWU 可读可写可执行

在这里插入图片描述

2.open :(“文件名”,flag:打开的方式,mode如果没有创建那么自动略过)

O_RDONLY:以只读的方式打开文件
O_WRONLY:以只写的方式开打文件
O_RDWR:以可读可写的方式打开
O_CREAT:如果文件存在就打开,如果不存在就创建
O_APPEND:写文件的时候追加在文件末尾
出错返回值-1

在这里插入图片描述

3.write函数:(文件描述符,写入的数据指针,写入的数据内存大小)

向文件写入数据

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.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!\n");
	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(fd1,buffer,16);
    printf("%s\n", buffer);

    return 0;
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Zj990124/article/details/115109120