linux应用
文章平均质量分 65
听枫要靠谱
这个作者很懒,什么都没留下…
展开
-
linux下的link函数和unlink函数
inode 其本质为结构体,存储文件的属性信息。如:权限、类型、大小、时间、用户、盘块位置……也叫作文件属性管理结构,大多数的 inode 都存储在磁盘上。 少量常用、近期使用的 inode 会被缓存到内存中。 dentry 目录项,其本质依然是结构体,重要成员变量有两个 {文件名,inode,...},而文件内容(data)保存在磁盘盘块中。思考,为什么目录项要游离于 inode 之外,画蛇添足般的将文件名单独存储呢??这样 的...原创 2021-10-19 15:29:57 · 1085 阅读 · 0 评论 -
linux下的stat/lstat函数
Linux 下可以使用 stat 命令查看文件的属性,其实这个命令内部就是通过调用 stat()函数来获取文件属性的,stat 函数是 Linux 中的系统调用,用于获取文件相关的信息,函数原型如下所示(可通过"man 2 stat"命令查看): #include <sys/types.h>#include <sys/stat.h>#include <unistd.h>int stat/lstat(const char *pathname, struct s原创 2021-10-19 09:52:52 · 756 阅读 · 0 评论 -
linux下的lseek函数
对于每个打开的文件,系统都会记录它的读写位置偏移量,我们也把这个读写位置偏移量称为读写偏移量,Linux 中可使用系统函数 lseek 来修改文件偏移量(读写位置)#include <sys/types.h>#include <unistd.h>off_t lseek(int fd, off_t offset, int whence);fd:文件描述符。 offset:偏移量,以字节为单位。 whence:用于定...原创 2021-10-16 10:09:28 · 7800 阅读 · 0 评论 -
使用read write 函数实现简单的 cp 功能。
#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <stdio.h>#include <string.h>#include <stdlib.h>int main(int argc, char *argv[]){ int fd1,fd2; int n = 0; char buf.原创 2021-09-30 09:05:22 · 401 阅读 · 0 评论 -
标准c库的fopen函数
在文件 I/O 中,使用 open()系统调用打开或创建文件,而在标准 I/O 中,我们将使用库函数 fopen()打开或创建文件,fopen()函数原型如下所示: #include <stdio.h>FILE *fopen(const char *path, const char *mode);使用该函数需要包含头文件 stdio.h。 函数参数和返回值含义如下: path:参数 path 指向文件路径...原创 2021-09-18 11:08:18 · 1188 阅读 · 0 评论 -
标准 I/O 库
1 标准 I/O 库简介所谓标准 I/O 库则是标准 C 库中用于文件 I/O 操作(譬如读文件、写文件等)相关的一系列库函数的集合,通常标准 I/O 库函数相关的函数定义都在头文件<stdio.h>中,所以我们需要在程序源码中包含<stdio.h>头文件。标准 I/O 库函数是构建于文件 I/O(open()、read()、write()、lseek()、close()等)这些系统调用之上的,譬如标准 I/O 库函数 fopen()就利用系统调用 open()来...原创 2021-09-17 10:39:50 · 338 阅读 · 0 评论 -
linux之文件共享
什么是文件共享?所谓文件共享指的是同一个文件(譬如磁盘上的同一个文件,对应同一个 inode)被多个独立的读写体同时进行 IO 操作。多个独立的读写体大家可以将其简单地理解为对应于同一个文件的多个不同的文件描述符,譬如多次打开同一个文件所得到的多个不同的 fd,或使用 dup()(或 dup2)函数复制得到的多个不同的 fd 等。同时进行 IO 操作指的是一个读写体操作文件尚未调用 close 关闭的情况下,另一个读写体去操作文件,前面给大家编写的示例代码中就已经涉...原创 2021-09-16 16:08:40 · 705 阅读 · 1 评论 -
应用和驱动的关系
一、应用程序和驱动的交互原理1、驱动就是获取外设、或者传感器数据,控制外设。数据会提交给应用程序。Linux驱动编译既要编写一个驱动,还要我们编写一个简单的测试应用程序,APP。单片机下驱动和应用都是放到一个文件里面,也就是杂糅到一起。Linux下驱动和应用是完全分开的。用户空间(用户态)和内核空间(内核态):Linux操作系统内核和驱动程序运行在内核空间、应用程序运行在用户空间。应用程序想要访问内核资源,怎么办,有三种方法:系统调用、异常(中断)和陷入。应用程序不会直接调用系统调用,而是通过原创 2021-04-24 19:01:29 · 1135 阅读 · 0 评论 -
Linux 系统如何管理文件
1 静态文件与 inode文件在没有被打开的情况下一般都是存放在磁盘中的,譬如电脑硬盘、移动硬盘、U 盘等外部存储设备,文件存放在磁盘文件系统中,并且以一种固定的形式进行存放,我们把他们称为静态文件。 文件储存在硬盘上,硬盘的最小存储单位叫做“扇区”(Sector),每个扇区储存 512 字节(相当于 0.5KB),操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个“块”(block)。这种由多个扇区组成的“...原创 2021-09-14 15:43:39 · 103 阅读 · 0 评论