linux知识点总结
更新时间:2024-03-31 22:47:01 阅读量: 综合文库 文档下载
七:file
1. 叙述linux的文件系统框架,并解释其中各个部分。
boot :启动相关的程序和配置
bin :常用的Linux命令,这些命令通常为可执行文件或这些文件的链接
sbin :通常为根用户准备的命令 lib :系统常用库
usr :用户安装的文件、库、开发库等 root :根用户的用户文件 home :普通用户的用户文件 etc :系统或程序的配置文件 var :系统中服务器数据、日志 proc :系统状态信息 dev :系统设备
mnt、media :其他分区的挂载点(如Windows磁盘分区、光盘或软件等)
tmp :临时文件 lost+found 磁盘孤立扇区
2. 叙述超级块、inode、dentey和file四大数据结构的作用和主要内容。 超级块:
作用:代表了整个文件系统,记录了文件系统的整体信
息
内容:文件系统的状态、文件系统类型、块大小、区块数、索引节点数、脏标志、操作方法 inode(索引节点)
作用:代表了操作系统中的一个文件,无论该文件是否被打开,它都包含了文件操作的所有信息
内容:文件大小,设备标识符,用户标识符,用户组标识符,文件模式,扩展属性,文件读取或修改的时间戳,链接数量,指向存储该内容的磁盘区块的指针,文件分类等等。 dentey(目录项):
作用:代表了一个目录,用来组成文件的路径,并利用其实现路径的管理
内容:包括该目录对象对应的索引节点,子目录链表,父目录目录项对象,与它同级的目录的目录项对象链表,使用计数,缓存标志 file(文件):
作用:代表了被进程打开的文件,是可以读写的实体 内容:包括相应的目录项对象、使用计数、访问模式、当前偏移量、操作方法等
3. 什么是文件描述符?它与fopen返回的文件指针有什么关系?
文件描述符是一个索引值,指向内核为每一个进程所维
护的该进程打开文件的记录表。
关系:fopen返回的文件指针是文件描述符所指向的文件描述符表中的一个表项
4. 分别叙述fopen和open的参数设置以及它们的区别。
fopen参数:path是指定的文件的路径,mode是文件的打开模式,模式可以为r、r+、w、w+、a、a+ open参数:pathname是欲打开文件的路径,flags是一些标志位,mode是文件的操作权限。
区别:(1)open返回一个文件描述符(int),fopen返回一个文件指针(FILE*)。(2)open无缓冲,fopen有缓冲。(3)open与 read, write 等配合使用, fopen与 fread, fwrite等配合使用。(4)fopen是在open的基础上扩充而来的,在大多数情况下,用fopen。 5. 叙述pipe和mkfifo两种管道函数的区别。
pipe创建匿名管道,mkfifo创建有名管道。
pipe管道是进程通信的一种形式,mkfifo管道被看作是一个文 件
6. 使用匿名管道技术,编程实现“ls -1|wc -l”。
#include
#include
perror(m);
exit(EXIT_FAILURE); } while(0)
int main(int argc, char *argv[]) {
int pipefd[2]; if (pipe(pipefd) == -1) ERR_EXIT(\
pid_t pid; pid = fork(); if (pid == -1)
ERR_EXIT(\
if (pid == 0) {
dup2(pipefd[1], STDOUT_FILENO); //输出重定向
close(pipefd[1]); close(pipefd[0]);
execlp(\ fprintf(stderr, \ exit(EXIT_FAILURE); }
dup2(pipefd[0], STDIN_FILENO); close(pipefd[0]); close(pipefd[1]);
execlp(\ fprintf(stderr, \ exit(EXIT_FAILURE);
return 0; }
7. 编写两个进程a和b,使用有名管道进行通信。a向b传送字符串“hello”,b接收并打印。
进程a: #include
if (mkfifo (PATH,0666|S_IFIFO) == -1)//创建有名管道,mkfifo(管道文件名,管> 理权限)
{ //成功返回0 失败返回-1 perror (\ exit(0); }
int fd = open (PATH,O_RDONLY); if (fd<0) {
printf(\
return 0; } 进程b: #include
char Buf[SIZE]; while(1) {
printf(\
fflush(stdout); //清空缓冲区,并把缓冲区的内容输出 ssize_t s = read(0,Buf,sizeof(Buf)); //ssize_t 一个类型 if (s<0) //read(文件标识符,数据缓冲
区,读取数据尺寸)
{ //失败或中断返回-1 perror(\ exit(1);
}
else if(s==0) { printf(\ return 1;
} else{ Buf[s]= '\\0'; //最后一位,字符串结束符
write(fd,Buf,strlen(Buf)); //write(文件表识符,数据缓冲区,写入文件尺寸)
}
} return 0; }
7.编程以可读写方式打开第一个参数表示的二进制文件,改写里面第三个字节为0fH,再关闭它。 八:mem
1. 叙述进程的用户空间和内核空间都有哪些种类,列举各类内存申请函数并说明之。
代码区、静态数据变量、堆区、栈区
用户空间用vmalloc/malloc分配内存,内核空间用kmalloc/vmalloc分配内存。
malloc:是动态内存分配,用于申请一块连续的指定大小的内存块区域以void*类型返回分配的内存区域地址,函数声明void *malloc(size_t size);
vmalloc/kmalloc:在设备驱动程序或者内核模块中动态开辟内存,释放内存用的是kfree,vfree,kmalloc分配的内存是物理上的连续,vmalloc分配的内存只是线性上的连续。 4.编写两个进程a和b,使用mmap进行通信,a向共享内存写入字符串“hello”后退出,b接收后打印出来。
5.编写一个程序,创建一个子进程,之后父子进程使用mmap函数进行匿名通讯,子进程向共享内存写入字符串“hello”后
退出,父进程接收后打印出来,并且等待子进程退出后结束。
#include
void mmapcopy(int fd, int size) {
char *bufp;
//void * start_addr = 0; //start_addr = (void *)0x80000; bufp = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
if (bufp == (void *)-1)
fprintf(stderr, \
memcpy(bufp, \
write(1, bufp, size); munmap(bufp, size); return; }
int main(int argc, char **argv) {
struct stat stat; if (argc != 2) {
printf(\ exit(0); }
//int fd = atoi(*argv[1]); //mmap()
int fd = open(argv[1], O_RDWR, 0); // O_RDWR 才能被读写。
if (fd < 0)
fprintf(stderr, \ // 使用异常检查是个好习惯, 他可以帮助程序员迅速定位出错的地方!
fstat(fd, &stat);
mmapcopy(fd, stat.st_size);
//while(1); close(fd); exit(0); }
正在阅读:
linux知识点总结03-31
城市气候学09-20
东南大学数电试卷(a)04-13
《专科英语I》第10章在线测试04-09
给留守儿童的慰问信02-07
观察记录01-27
关于北京地区会计师事务所收费标准(试行)的通知(京价(收)字第260号)03-12
2018-2024年中国黄磷行业深度调研与投资战略研究报告目录04-27
建筑设备工程考试要点08-18
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 知识点
- 总结
- linux
- 申请贷款应提交材料
- 荷叶圆圆 公开课教案
- 中国建筑材料集团有限公司总部公务用车管理办法
- 高速公路绿化的施工组织设计技术标稿
- 2013-2018年中国地理信息系统(GIS)行业未来五年规划及投资预测分
- 制冷设备(电冰箱 空调器)维修技巧320例子
- 北大心理学概论期末考试复习资料
- 初二数学第一次月考试题201710
- 槐花米中芦丁
- 高中物理必修1教学案(全套下)
- 第2章 随机变量及其分布
- 武汉出版社三年级生命安全全册教案
- 汽车车身设计论文
- 黄山饭店行销策划(参考)方案 - 图文
- 八下语文借物抒情教学设计
- 高分子物理典型计算题
- 关联企业避税
- 第一批全国建筑幕墙设计人员岗位能力评价通过人员继续教育复习题
- 二年级下册比喻句专项训练
- 河南省许昌市长葛市第三实验高中2013-2014学年高一(上)第三次