嵌入式面试2022年嵌入式经典面试题汇总Linux-文件IO
目录
【嵌入式面试】2022年嵌入式经典面试题汇总(Linux | 文件IO)
📜作者:
📺专栏:《 》
📣格言: 我不停奔跑只为追赶当年被寄予厚望的自己。
前言
2022年秋招我面试嵌入式MCU开发方向,经过了多场的笔试与面试,在准备的过程中看了非常多的资料,我的汇总的笔记一直写在有道云笔记中,没有分享出来。现在已经到了23年春招了,特此整理后分享出来。资料看过了觉得不错就保存下来了,如果有不对的地方,欢迎批评指正,侵权联删!
一、 Linux
1 Window系统和Linux系统的区别
1.1 区分大小写
- linux 区分大小写
- windows 在dos(磁盘操作系统)界面命令下不区分大小写;
1.2 文件系统上的区别
- Windows 下,计算机是以驱动器盘符区分所有文件
- Linux没有盘符这个概念,以根目录 /区分所有文件
1.3 文件形式保存
- Linux 所有内容均以文件形式保存包括硬件,用户;
- windows 文件和硬件没什么关系,两个之间没有关联;
1.4 文件区分
windows 用扩展名区分文件;
如.exe代表执行文件,.txt代表文本文件,.gz , .bz2 ,.tar.bz2代表压缩包,.html ,.php代表网页文件。
linux是 以权限区分文件 ,没无扩展名的概念。管理员为了方便,可以部分扩展。
文件类型 | 文件符号 |
---|---|
普通文件 | ‘ -’ |
目录文件 | ‘ d’ |
管道文件 | ‘ p’ |
链接文件 | ‘ l’(硬链接和软链接)。 |
设备文件 | (块设备 ’ b’ 、字符设备 ‘ c’ ) |
套接字文件 | ‘s’ |
1.5 开源与收费
- windows 大部分 软件收费 , 系统非开源 。系统具有数量和质量的优势,由微软官方提供重要支持和服务 。
- linux 平台大都为 开源自由软件 , 用户可以修改定制和再发布 ,由于基本免费没有资金支持,部分软件质量和体验欠缺;有全球所有的Linux开发者和自由软件社区提供支持。
1.6 执行文件与安全性
- windows 下的执行文件是.exe文件,大部分是图形界面,不具有安全性。.exe文件不能直接在linux下安装与运行。
- linux下 的执行文件是二进制文件,大部分是字符界面,具有安全性,减少了木马攻击的可能性。
1.7 程序安装
- Windows 软件安装是通过应用商店或者浏览器下载后安装。
- Linux主要 通过shell命令进行安装。可以使用apt方式安装(软件包管理系统)、rpm包安装、deb包安装、tar.gz源代码包安装、tar.bz2源代码包安装、yum方式安装(安装rpm包)、bin文件安装。
1.8 占用系统资源
linux是字符界面 , 占用的系统资源 较于windows下的 图形界面所占的资源小 。
Windows 是 图形界面 ,较于Linux的字符界面 所占的资源大 。
2 Linux的根目录有哪些?各有什么作用?
2.1 Linux的根目录有哪些
有/bin、/home、/boot、/cdrom、/dev、/etc、/initrd.img、/initrd.img.old、/lib、/lib64、/lost+found、/media、/mnt、/opt、/proc、/ root、/run、/sbin、/snap、/srv、/sy、/tmp、/usr、/var 等。
2.2 Linux的根目录的作用
根目录名 | 作用 |
---|---|
/bin | 可执行二进制文件的目录,如常用的命令 ls、tar、mv、cat 等 |
/home | 普通用户的家目录 |
/root | root用户的家目录 |
/boot | 内核文件的引导目录, 放置 linux 系统启动时用到的一些文件 |
/sbing | 超级用户使用的指令文件 |
/tmp | 临时文件目录 |
/dev | 设备文件目录 |
/lib | 共享库,系统使用的函数库的目录 |
/usr | 第三方程序目录 |
/etc | 配置程序目录,系统配置文件存放的目录 |
/var | 可变文件,放置系统执行过程中经常变化的文件 |
/opt | 用户使用目录,给主机额外安装软件所摆放的目录。 |
3 linux下有哪几种文件
- 普通文件类型(-)
- 目录文件类型(d)
- 块设备文件类型(b)
- 字符设备类型©
- 套接字文件类型(s)
- 管道文件类型§
- 链接文件类型(l)
二、文件IO
1 系统IO和标准IO操作文件的区别?
1.1 文件类型
- 标准IO 打开的是一个 文件指针 ;
- 系统IO 打开的是一个 文件描述符 。
1.2 系统 IO优势
- 系统 IO具有通用性和简约型。
- 文件操作上普通文件、管道文件、设备节点文件、套接字文件等都可以使用,并且对文件内
- 数据的读写不带任何格式
- 数据的读写没有缓冲处理;而系统IO不具有通用和简约型。
1.3 标准 IO优势
- 标准 IO 是系统 IO 的封装;
- 标准 IO具有丰富的读写方式,可以按格式读写、按 ASCII码字符读写、按二进制读写、按行读写、按数据块读写等;
- 提供数据读写缓冲功能,极大提高程序读写效率。
2 系统IO和标准IO缺省打开的三个标准文件的方式?
设备 | 标准IO | 系统IO |
---|---|---|
标准输入设备(键盘) | stdin | STDIN_FILENO(数值0) |
标准输出设备(屏幕) | stdout | STDOUT_FILENO(数值1) |
标准出错设备(屏幕) | stderr | STDERR_FILENO(数值2) |
3 什么是空洞文件?谈一谈对空洞文件的理解。
3.1 空洞文件
没有写过的字节都被设为 0就是空洞文件。
在UNIX文件操作中,文件位移量可以大于文件的当前长度,此时,对该文件的下一次写将延长该文件,并在文件中构成一个空洞,这一点是允许的。位于文件中但
3.2 空洞文件作用
- 空洞文件作用很大,例如迅雷 下载文件 ,在 未下载完成时就已经占据了全部文件大小的空间 ,这时候就是空洞文件。
- 下载时 如果没有空洞文件 , 多线程下载时文件就都只能从一个地方写入 ,这就不是多线程了。如果 有了空洞文件 ,可以从不同的地址写入, 就完成了多线程的优势任务 。
4 用open()创建新文件时,若该文件存在则可以返回错误信息的参数是那些?
O_CREAT | O_EXCL。
结语
由于自己做的是MCU方向,不是Linux驱动开发,所以涉及Linux的面试知识有点少,因此可以参考我发的或者网上的其他资料。
本栏前文
1、
2、
如果文章对你有帮助, 欢迎点赞,关注,转发 !