Linux系统编程--文件(一)

来源:互联网 发布:阿里云销售好做吗 编辑:程序博客网 时间:2024/06/01 20:06

1.系统编程

系统调用:应用程序同系统之间的接口。由操作系统实现提供的所有系统调用所构成的集合即程序接口或编程接口。
封装系统调用:更加方便程序员使用,跨平台。
百度
这个概念看书时候第一次遇到,百度了一下,看完只能说是有了一个模糊的概念。封装系统调用的理解就更不是特别清晰。

2.Llinux的文件结构

Llinux操作系统是以文件为基础而设计的,Llinux的文件子系统主要用于管理文件存储空间的分配,文件访问权限的维护,对文件的各种操作。用户可使用命令对文件进行操作;程序员可以使用系统调用或C语言的库函数对文件进行操作。

一般linux发行版本都含有以下目录

/bin
/boot Linux
/dev
/etc
/home
/lib
/proc
/root
/sbin
/tmp
/usr
/var

3.Linux的文件系统模型

(这部分是概念,自己没有了解过,所以写下来)

a.数据存储在物理磁盘上,操作系统通过文件系统可以对磁盘上的文件进行管理。对物理磁盘的访问是通过设备驱动程序进行的,对设备驱动的访问有两种途径:1.通过设备驱动本身提供的接口;2.通过虚拟文件系统(Virtual File System, VFS)提供给上层应用系统的接口。

b.VFS是虚拟的,不存在的,只存在于内存而不存在于磁盘,即只有在系统运行起来以后才存在。VFS提供一种机制,将各种不同的文件系统整合在一起,并提供统一的API供上层的应用程序使用。

4.文件的访问权限控制

mode

r:4
w:2
x:1

实现简化版的chmod命令
my_chmod.c

a.之前看鸟哥的时候接触到了chmod,只知道用它修改权限,这次是了解了这个函数,还接触到了fchmod这个函数.

#include<sys/types.h>#include<sys/stst.h>int chmod(const char *path, mode_t mode);int fchomd(int fildes, mode_t mode);

chmod与fchmod的区别
chmod以文件名作为第一个参数,fchmod以文件描述符作为第一个参数,目前我所理解这个文件描述符需要open之类打开文件得到返回值。

b.利用chmod函数实现了一个简单的chmod命令,遇到了一个新函数atoi (ascii to integer)将字符串转换成整形数

#include<stdlib.h>int atoi (const char *nptr)

如atoi(“777”)的返回值是整型数777.

0 0