回顾文件、目录、设备相关概念

系统调用(Linux API对应的概念) 标准I/O库 两种文件处理方式
1) Linux的文件结构(文件为操作系统服务和设备提供了一个简单而一致的接口);
2) 在Linux中,(几乎一切)一切都是文件;
3) 文件的“管理信息”(名字&属性):文件创建/修改日期、访问权限。这些属性被保存在文件的inode节点中,它是文件系统的一个特殊的数据块,他同时还包含文件的长度和文件在磁盘中存放的位置。系统使用的是文件的inode编号,目录结构为文件命名仅仅只为了便于人们使用。
4) 目录:用于保存其他文件的节点号和名字的文件。
5) -rwxr-xr-x 1 root root 5202 01-17 11:50 demo_1 -rw-r–r– 1 root root 97 01-17 11:51 temp.txt其中访问权限之后的数字有‘1’变为‘0’后,即文件的链接数变为0,表示该节点以及其指向的数据不再被使用,磁盘上的相应位置就会被标志为可用空间。
6) 删除一个文件,实质上就是删除了该文件对应的目录项,同时指向该文件的链接数减一。
7) 进入家目录:cd ~,进入别人家目录:cd ~user。
8) 各个目录的作用概述:
/bin目录:存放系统程序(二进制可执行文件)
/ect目录:存放系统配置文件
/lib目录:存放系统函数库
/dev目录:存放物理设备并未这些设备提供接口的文件
/mnt目录:软驱与光驱接默认装载点的地方
/proc目录:放置系统核心与执行程序所需的一些信息
/root目录:系统管理员的根目录
/usr目录:用于存放程序与指令
/sbin目录:放置系统管理常用的程序
/tmp目录:临时文件存放目录
9) 操作系统的核心部分,即内核,是一组设备驱动程序。它们是一组对系统硬件进行控制的底层接口。
10) dev 目录中的设备文件用法都是相同的,它们都可以被打开、读、写和关闭。
11) 每个驱动程序都有自己的一组ioctl命令,ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制。
12) 为了给设备和磁盘文件提供更高的接口,Linux发行版提供了一系列标准函数库。
13) 库函数在数据满足数据块长度要求时安排执行底层系统调用,可以极大降低系统调用的开销。
14) 每个运行中的程序被称为进程(process),它有一些与之关联的文件描述符,可以通过它们访问打开的文件或设备。可用文件描述符的数量取决于系统的配置情况。当一个程序开始运行时,一般有三个已经打开的文件描述符:
0:标准输入 STDIN_FILENO
1:标准输出 STDOUT_FILENO
2:标准错误 STDERR_FILENO
15) write系统调用:(#include

#include <stdlib.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
        char buffer[128];
        int nread;

        nread = read(0 , buffer, 128);

        if(nread == -1)
{
    write(1, “A read error has occurred \n”, 26 );
}

If((write(1, buffer, nread)) != nread)
{
    write(2, “A write error has occurred \n”,27);
}

exit(0);
}

17) open系统调用:
为了创建一个新的系统描述符,需要使用系统调用open,简单地说,open建立了一条到文件或设备访问的路径。如果调用成功,它将返回一个可以被read、write和其他系统调用使用的文件描述符。这个文件描述符是唯一的,它不会与任何其它运行中的程序共享。
头文件:

#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>

文件访问模式:
O_RDONLY 以只读方式打开
O_WRONLY 以只写方式打开
O_RDWR 以读写方式打开
18) umask 是一个系统变量,它的作用是:当文件被创建时,为文件的访问权限设定一个掩码。执行umask命令可以修改这个变量的值。
19) close系统调用:(#include

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值