利用stat函数实现ls- l filename功能 功能&函数介绍 在我们使用 ls -l 命令的时候,会输出下面的结果: 在这里,我使用stat函数来实现这一功能。我们知道,stat函数提供了一个结构体,其内容为: struct stat { dev_t st_dev; //文件的设备编号 ino_t st_ino; //节点 mode_t st_mode; //文件的类型和存取的权限 nli…
利用stat函数实现ls- l filename功能 功能&函数介绍 在我们使用 ls -l 命令的时候,会输出下面的结果: 在这里,我使用stat函数来实现这一功能。我们知道,stat函数提供了一个结构体,其内容为: struct stat { dev_t st_dev; //文件的设备编号 ino_t st_ino; //节点 mode_t st_mode; //文件的类型和存取的权限 nli…
由于前几天都是使用印象笔记写的,尚未转换成Markdown格式,所以会在后续更新。 C库函数 FILE其实本质上是一个结构体,它里面有: 文件描述符(整型值)。索引到对应的磁盘文件。 文件读写位置指针:读写文件过程中指针的实际位置。 I/O缓冲区(内存地址):通过寻址找到对应的内存块。大小默认是8个byte。设置I/O缓冲区是为了减少对内存的读写访问,节省时间。 Linux的系统函数是没有缓冲区的,需要我们自己提供。 文件描述符 Linux每一个运行的程序(进程),操作系统都会为其分配一个0~4G(232)的地址空…
由于我个人平时常使用C/C++进行编程,所以我决定把CentOS下面的VIM这个强大的编辑器改造成一个强大的C++的IDE。下面是具体的步骤。 安装pathogen 该插件地址为: https://github.com/tpope/vim-pathogen 安装命令为: mkdir -p ~/.vim/autoload ~/.vim/bundle && \ curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim 安装完成…
三、Boot loader: Grub2 1.Boot loader的两个stage 之前讲过,在BIOS读取完信息后,就是到第一个开机设备的MBR去读取boot loader,这个boot loader有菜单功能、直接载入核心文件以及控制权移交的功能等。系统必须要有loader才有办法加载操作系统的核心,但是我们都知道,MBR是整个硬盘的第一个sector内的一块,充其量也就446bytes,即使GPT也没有很大空间存储loader的数据,那么我们的loader是如何安装呢? 为了解决这个问题,Linux把boo…
一、Linux的开机流程分析 1.开机流程 当你按下电源后,电脑硬件会主动读取BIOS或UEFI BOIOS来加载硬件信息以及进行硬件的自我测试,然后系统就会主动读取第一个可开机的设备(由BIOS设置),此时就可以读入开机管理程序了。 开机管理程序可以指定使用哪个核心文件来开机,并加载核心到内存中解压缩执行,此时核心就能够在内存中活动,并检测所有硬件信息加载适当的启动程序来使整个电脑工作,等到核心检测硬件与加载驱动程序完成后,操作系统就开始运行了。 操作系统开始运行,Linux才会调用外部程序开始准备软件执行的环境…
三、systemctl针对service类型的配置文件 1.systemctl配置文件相关目录介绍 我们知道服务的管理是通过systemd,而systemd的配置文件大部分位于/usr/lib/system/system/目录中。但是Red Hat官方文档中,不允许修改这个文件,修改的文件位于/etc/system/system目录内。例如我想要修改vsftpd.service的话,那么应该怎样做呢? (1)/usr/lib/system/system/vsftpd.service:官方的预置配置文件; (2)/e…
一、什么是daemon与服务 系统为了某些功能必须要提供一些服务(无论是系统本身还是网络方面),这个服务就是service。但是service的提供需要通过程序运行,所以这个程序称为daemon。 通常在Linux使用的时候,会在服务的名称后面加上一个d,这就是daemon程序的命名方式。例如例行性命令的建立的at,它的程序文件名就是atd。 1.systemd使用的unit分类 现在,包括Ubuntu在内的多个分支版本开始使用systemd这个启动服务管理机制。那么systemd有什么好处呢? ①平行处理所有服务…