嵌入式笔试——笔试题目

2023-05-16

单选(15题)
第一题

在这里插入图片描述
栈简介
栈由操作系统(编译器)自动分配释放 ,用于存放函数的参数值、局部变量等,其操作方式类似于数据结构中的栈。

堆简介
堆由开发人员分配和释放,容易产生内存碎片(不连续的无法利用的地址空间)。 若开发人员不释放,程序结束时由 OS(操作系统) 回收,分配方式类似于链表。

堆与栈区别
堆与栈实际上是操作系统对进程占用的内存空间的两种管理方式,主要有如下几种区别:
(1)管理方式不同。栈由操作系统自动分配释放,无需我们手动控制;堆的申请和释放工作由程序员控制,容易产生内存泄漏;

(2)空间大小不同。每个进程拥有的栈的大小要远远小于堆的大小。理论上,程序员可申请的堆大小为虚拟内存的大小,进程栈的大小 64bits 的 Windows 默认 1MB,64bits 的 Linux 默认 10MB;

(3)生长方向不同。堆的生长方向向上,内存地址由低到高;栈的生长方向向下,内存地址由高到低。

(4)分配方式不同。堆都是动态分配的,没有静态分配的堆。栈有2种分配方式:静态分配和动态分配。静态分配是由操作系统完成的,比如局部变量的分配。动态分配由alloca函数进行分配,但是栈的动态分配和堆是不同的,他的动态分配是由操作系统进行释放,无需我们手工实现。

(5)分配效率不同。栈效率高,堆效率低。 栈由系统自动分配,速度较快。但程序员是无法控制。堆分配的内存速度较慢,不易产生内存碎片栈由操作系统自动分配,会在硬件层级对栈提供支持:分配专门的寄存器存放栈的地址,压栈出栈都有专门的指令执行,这就决定了栈的效率比较高。堆则是由C/C++提供的库函数或运算符来完成申请与管理,实现机制较为复杂,频繁的内存申请容易产生内存碎片。显然,堆的效率比栈要低得多。

(6)存放内容不同。
栈存放的内容,函数返回地址、相关参数、局部变量和寄存器内容等。
堆,一般情况堆顶使用一个字节的空间来存放堆的大小,而堆中具体存放内容是由程序员来填充的。
C程序的存储空间是如何分配
在这里插入图片描述
1、代码段:
1.1).text
主要存放代码(用户代码)包括main函数在内的所有用户自定义的函数只读并且共享,这段内存在程序运行期间不会被释放。

1.2).init
主要用来存放系统给每个可执行文件自动添加的“初始化代码” ,(eg:环境变量的准备,命令行参数…)。

2、数据段:
2.1).data
主要存放程序的已初始化的全局变量和已初始化的static变量,可读可写,这段内存在程序运行期间不会被释放。

2.2).bss
主要存放程序的未初始化的全局变量和未初始化的static变量,可读可写,这段内存在程序运行期间不会被释放,.bss段 在进程初始化时候 (可能)全部初始化为0。

2.3).rodata
只读数据段,主要存放程序中的只读数据(eg:字符串常量),只读。这段内存在程序运行期间不会被释放。

3、栈空间(Stack)
主要存放局部变量(非static的局部变量),可读可写。这段空间,会自动释放,(代码块执行完毕,代码块中的所有局部变量的空间都会自动释放),随代码块的持续性。

4、堆(heap)空间: 动态内存空间
主要是 malloc,realloc,calloc 动态分配的空间,可读可写,这段内存在程序运行期间,一旦分配就一直存在,直到手动 free 或进程消亡(防止 “内存泄漏” / “垃圾内存”)。
第二题
在这里插入图片描述
死锁:
在线程间共享多个资源的时候,如果两个线程分别占有一部分资源并且同时等待对方的资源,就会造成死锁,尽管死锁很少发生,但一旦发生就会造成应用的停止响应。
产生死锁的四个必要条件:
1、互斥条件:一个资源每次只能被一个进程使用。
2、请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
3、不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
4、循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
预防死锁
1、有序分配锁资源可以预防死锁

2、银行家算法避免死锁(不是检测)
银行家算法是从当前状态出发,逐个按安全序列检查各客户谁能完成其工作,然后假定其完成工作且归还全部贷款,再进而检查下一个能完成工作的客户,…。如果所有客户都能完成工作,则找到一个安全序列,银行家才是安全的。
解除死锁
剥夺死锁进程的所有资源可以解除死锁
第三题在这里插入图片描述
一、顺序结构(顺序存取和随机存取)
优点
1、简单:存储与管理都简单,且容易实现。
2、支持顺序存取和随机存取。
3、顺序存取速度快。
4、所需的磁盘寻道次数和寻道时间最少。
缺点
1、需要为每个文件预留若干物理块以满足文件增长的部分需要。
2、不利于文件插入和删除。
二、链式结构(顺序存取)
优点
1、提高了磁盘空间利用率,不需要为每个文件预留物理块。
2、有利于文件插入和删除。
3、有利于文件动态扩充。
缺点
1、存取速度慢,不适于随机存取。
2、当物理块间的连接指针出错时,数据丢失。
3、更多的寻道次数和寻道时间。
4、链接指针占用一定的空间,降低了空间利用率。
三、索引结构(顺序存取和随机存取)
优点
1、不需要为每个文件预留物理块。
2、既能顺序存取,又能随机存取。
3、满足了文件动态增长、插入删除的要求。
缺点
1、较多的寻道次数和寻道时间。
2、索引表本身带来了系统开销。如:内外存空间,存取时间等
四、hash(哈希)文件(顺序存取和随机存取)
哈希文件中,是使用一个函数(算法)来完成一种将关键字映射到存储器地址的映射,根据用户给出的关键字,经函数计算得到目标地址,再进行目标的检索。
第四题在这里插入图片描述
第五题在这里插入图片描述
第六题
在这里插入图片描述
const的作用:
1、 修饰变量:
C语言中采用const修饰变量,功能是对变量声明为只读特性,并保护变量值以防被修改。举例说明如下:
const int i = 5;
上面这个例子表明,变量i具有只读特性,不能够被更改;若想对i重新赋值,如i = 10;则是错误的。
2、 修饰数组:
C语言中const还可以修饰数组,举例如下:
const int array[5] = {1,2,3,4,5};
array[0] = array[0]+1; //错误
数组元素与变量类似,具有只读属性,不能被更改;一旦更改,如程序将会报错。
3、 修饰指针:
C语言中const修饰指针要特别注意,共有两种形式,一种是用来限定指向空间的值不能修改;另一种是限定指针不可更改。举例说明如下:

int i = 5;
int j = 6;
int k = 7;
const int * p1 = &i; //定义1 即其指向空间的值不可改变
int * const p2 =&j; //定义2 限定的是指针
上面定义了两个指针p1和p2。
在定义1中const限定的是p1,即其指向空间的值不可改变,若改变其指向空间的值如p1=20,则程序会报错;但p1的值是可以改变的,对p1重新赋值如p1=&k是没有任何问题的。
在定义2中const限定的是指针p2,若改变p2的值如p2=&k,程序将会报错;但p2,即其所指向空间的值可以改变,如p2=80是没有问题的,程序正常执行。
4、 修饰函数参数:
const关键字修饰函数参数,对参数起限定作用,防止其在函数内部被修改。所限定的函数参数可以是普通变量,也可以是指针变量

void fun1(const int i)
{
其它语句
……
i++; //对i的值进行了修改,程序报错
其它语句
}

void fun2(const int *p)
{
其它语句
……
(*p)++; //对p指向空间的值进行了修改,程序报错
其它语句
}

第七题 选B
在这里插入图片描述
#define 的作用
在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。
在C或C++语言中,“宏”分为有参数和无参数两种。
(1) 无参宏定义
无参宏的宏名后不带参数。其定义的一般形式为:

#define 标识符 字符串

其中的“#”表示这是一条预处理命令。凡是以“#”开头的均为预处理命令。“define”为宏定义命令。“标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。
例如:

#define M (a+b)
1
(2) 无参宏定义
c语言允许宏带有参数。在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数。对带参数的宏,在调用中,不仅要宏展开,而且要用实参去代换形参。
带参宏定义的一般形式为:
#define 宏名(形参表) 字符串(在字符串中含有各个形参。)

带参宏调用的一般形式为:
宏名(形参表)

例如:

#ifndef __headerfileXXX__

#define __headerfileXXX__
…
文件内容
…
#endif

(3) 防止重复定义
#define 条件编译
头文件(.h)可以被头文件或C文件包含;
重复包含(重复定义)
由于头文件包含可以嵌套,那么C文件就有可能包含多次同一个头文件,就可能出现重复定义的问题的。
通过条件编译开关来避免重复包含(重复定义)
例如

#ifndef __headerfileXXX__

#define __headerfileXXX__
…
文件内容
…
#endif

宏定义中#与##的作用
#是把宏参数转化为字符串的运算符,##是把两个宏参数连接的运算符
#define str(arg) #arg 则宏STR(inter)展开时为”inter”

#define name_y(y) name_y 则宏name_y(1)展开时仍为name_y

#define NAME(y) name_##y 则宏NAME(1)展开为name_1

#define DECLARE(name, type) typename##_##type##_type,

则宏DECLARE(val, int)展开为int val_int_type
第八题
关于malloc
当使用malloc后,只有在没有足够内存的情况下会返回NULL,或是出现异常报告。

malloc(0)是指分配内存大小为零 ,malloc(0),系统就已经帮你准备好了堆中的使用起始地址(不会为NULL)。但是你不能对该地址进行写操作(不是不允许),如果写了话,当调用free(ptr)就会产生异常报告(地址受损)。

malloc(0)也是一种存在不是NULL

NULL 一般预定义为 (void *)0,指向0地址。NULL是不指向任何实体
malloc是在程序堆栈上分配空间,不会是0地址 。
第九题
在这里插入图片描述
++i:先加后用
i++:先加后用
||:或运算
&&:与运算
第九题
在这里插入图片描述
IP地址分两部分: 网络ID+主机ID
比如192.168.1.100/24这个IP地址,掩码为:255.255.255.0
所以它的网络ID是:192.168.1.0 而主机ID为:0.0.0.100
而192.168.1.0是不能作为主机IP用的,它代表192.168.1.0这个子网,这个子网可用IP范围是
192.168.1.1——192.168.1.255 一头一尾都不能用。因为:
192.168.1.0代表网络ID,而192.168.1.255是广播地址。这两个IP要被去掉!
第十题
在这里插入图片描述
TCP和UDP协议的区别
1、TCP(面向连接)双方必须连接成功才能发数据,类似打电话,主要用于对传输数据精确的情况,如传输指令。
2、UDP(面向报文)双方无须连接成功就能发数据,类似发短信,主要用于传输大数据量的情况,可靠性不能保证,如视频。

TCP和UDP协议的区别
TCP和UDP协议的相同点:都是传输层协议;
第十一题
在这里插入图片描述
recv函数
返回值:
若无错误发生,recv()返回读入的字节数。如果连接已中止,返回0。如果发生错误,返回-1,应用程序可通过perror()获取相应错误信息。
注:
如果套接口为SOCK_STREAM类型,并且远端“优雅”地中止了连接,那么recv()一个数据也不读取,立即返回。如果立即被强制中止,那么recv()将以WSAECONNRESET错误失败返回。在套接口的所设选项之上,还可用标志位flag来影响函数的执行方式。也就是说,本函数的语义既取决于套接口选项,也取决于标志位参数。
多选题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
协议汇总
物理层: RJ45 、 CLOCK 、 IEEE802.3 (中继器,集线器)
数据链路: PPP 、 FR 、 HDLC 、 VLAN 、 MAC (网桥,交换机)
网络层: ==IP ==、 ICMP 、 ARP 、 RARP 、 OSPF 、 IPX 、 RIP 、 IGRP 、 (路由器)
传输层: TCP 、 UDP 、 SPX (网关)
会话层: NFS 、 SQL 、 NETBIOS 、 RPC
表示层: JPEG 、 MPEG 、 ASII
应用层: FTP , DNS,Telnet(TELNET) ,SMTP,HTTP , WWW ,NFS,SNMP
简答题
在这里插入图片描述
TCP协议保证数据传输可靠性的方式主要有:

校验和
序列号
确认应答
超时重传
连接管理
流量控制
拥塞控制
在这里插入图片描述
c语言中static关键字用法:
1、static+局部变量:静态局部变量使用static修饰符定义,即使在声明时未赋初值,编译器也会把它初始化为0。且静态局部变量存储于进程的全局数据区,即使函数返回,它的值也会保持不变。

2、static+全局变量:普通全局变量对整个工程可见,其他文件可以使用extern外部声明后直接使用。也就是说其他文件不能再定义一个与其相同名字的变量了(否则编译器会认为它们是同一个变量)。
静态全局变量仅对当前文件可见,其他文件不可访问,其他文件可以定义与其同名的变量,两者互不影响。

3、static+函数

静态函数只能在声明它的文件中可见,其他文件不能引用该函数
不同的文件可以使用相同名字的静态函数,互不影响

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

嵌入式笔试——笔试题目 的相关文章

  • 拦截器Interceptor

    Interceptor拦截器入门 介绍 什么是拦截器 xff1f 是一种动态拦截方法调用的机制 xff0c 类似于过滤器 拦截器是Spring框架中提供的 xff0c 用来动态拦截控制器方法的执行 拦截器的作用 xff1a 拦截请求 xff
  • 异常处理--全局异常处理器

    异常处理方案 出现异常之后 xff0c 三层依次向上抛出 xff0c 最后交给Spring框架处理 xff0c 返回一个JSON的错误信息 在三层构架项目中 xff0c 出现了异常 xff0c 可以用以下两种方式处理 方案一 xff1a 在
  • 简单理解位运算:位与&、位或|、位非~、异或^、左移<<、右移>>

    位运算 xff0c 顾名思义 xff0c 就是对字节中的每个位进行一位一位的运算 常见的运算符有 xff1a 位与 xff08 amp xff09 位或 xff08 xff09 位非 xff08 xff09 异或 xff08 xff09 左
  • bash 脚本字符串截取表达式详细说明

    在编写linux脚本时 xff0c 有时需要操作字符串 xff0c 从一个字符串中截取一段字符串 xff0c linux系统的bash脚本截取字符串的功能比较强 xff0c 表达式丰富 xff0c 时间长了容易忘记 xff0c 因此作此笔记
  • Springboot入门 -- AOP

    一 事务 1 回顾MySQL事务管理 事务的操作主要有三步 xff1a 开启事务 xff08 一组操作开始前 xff0c 开启事务 xff09 xff1a start transaction begin 提交事务 xff08 这组操作全部成
  • SpringBoot原理篇

    1 配置优先级 优先级一次为 xff1a application properties application yml application ymal 推荐使用yml 除了配置文件属性配置 xff0c 还支持Java系统属性和命令行参数的
  • maven私服配置说明

    私服配置说明 使用私服 xff0c 需要在maven的settings xml配置文件中 xff0c 做如下配置 xff1a 需要在 servers 标签中 xff0c 配置访问私服的个人凭证 访问的用户名和密码 span class to
  • Git基本使用

    1 Git快速入门 1 1 Git概述 Git是一个免费的 xff0c 开源的分布式版本控制系统 xff0c 可以快速高效地处理从小型或大型的各种项目 Git易于学习 xff0c 占用空间小 xff0c 性能快得惊人 官网 xff1a ht
  • MyBatisPlus

    1 简介 官网 xff1a https www baomidou com 2 相关依赖以及配置 2 1 pom引入依赖 span class token comment lt MyBatisPlus 启动器 gt span span cla
  • 使用STM32点亮LED

    多学多练 一 题目描述二 设计思路三 寄存器实现01 时钟配置02 模式设置03 代码编写04 创建工程文件 四 HAL库实现01 安装 STM32CubeMX02 安装HAL库03 新建工程04 Keil仿真调试 五 硬件连接六 逻辑仿真
  • C语言数据结构中利用栈和队列实现回文的判断

    数据结构中栈有着极为广大的运用 xff0c 其操作特点是FILO先进后出 队列的特点是FIFO先进先出 判断回文 xff0c 回文序列很好理解 xff0c 正反来看它都一样 那我们可以巧妙的利用栈和队列特点来判断回文 xff0c 存入进抽象
  • csp202112-1 序列查询 满分AC python

    nN 61 int x for x in input split n 61 nN 0 N 61 nN 1 list1 61 0 43 int x for x in input split if int x lt N 43 N num 61
  • isPrime()函数:判断素数,构造素数表

    素数函数isPrime xff08 素数 xff1a 指在大于1的自然数中 xff0c 除了1和它自身外 xff0c 不能被其他自然数整除的数 xff09 方法一 span class token keyword int span span
  • gets()函数

    gets 函数 1 描述 C 库函数 char gets char str 从标准输入 stdin 读取一行 xff0c 并把它存储在 str 所指向的字符串中 当读取到换行符时 xff0c 或者到达文件末尾时 xff0c 它会停止 xff
  • win11系统新版edge不兼容网银如何解决【解决办法】

    由于目前国内的网银都是基于IE浏览器进行开发的 xff0c 由于微软推行Edge xff0c Win11把IE砍掉后 xff0c 会将IE的链接强制跳转到Edge上 xff0c 很多网银无法调用 xff0c 对于需要使用Web网银的用户来说
  • 如何判断输入的字符是小写字母、大写字母还是数字?

    一 比较判断 计算机中字符都有自己的ASCII码 xff0c 并且数字 xff0c 字母都有自己的范围 如下 xff1a 类型ASCII码数字0 948 57大写字母A Z65 90小写字母a z97 122 但是在编码时可能记不住ASCI
  • C语言· 实现各进制间的相互转换

    数制只是人用来计数的不同方法 xff0c 但他们所表示的量不会改变 下面我们试着用C语言来实现数制之间的转换 一 由十进制转换为其他进制 我们常用的更为熟悉的是十进制 xff0c 那我们就用十进制开始 xff08 下面用二进制举例 xff0
  • C语言——如何简单地实现四舍五入

    如何实现数的四舍五入 span class token macro property span class token directive keyword include span span class token string lt st
  • 菜鸡自学 Python 笔记(二)

    菜鸡自学 Python 笔记 xff08 二 xff09 五 xff0c 结构与语句1 选择结构 if 语句2 循环控制语句 xff08 1 xff09 while 语句 xff08 2 xff09 for 语句 xff08 3 xff09
  • 菜鸡自学 Python 笔记(三)

    菜鸡自学 Python 笔记 xff08 三 xff09 九 函数1 内置函数2 自定义函数3 带参数的函数4 函数的返回值 十 处理异常和错误1 异常捕捉2 抛出异常3 自定义异常 十一 类与对象1 创建类和实例对象2 属性的公有 私有3

随机推荐

  • 一篇文章学会 Python 正则表达式!

    菜鸡自学 Python 笔记 xff1a 正则表达式 一 简单理解二 re findall函数三 普通字符与元字符1 普通字符2 元字符 四 修饰符 xff08 可选标志 xff09 五 re sub函数六 re match函数七 re s
  • DOM型XSS

    gt DOM型XSS与之前两种在原理上有本质区别 xff0c 它的攻击代码并不需要服务器解析响应 xff0c 触发XSS靠的是浏览器端的DOM解析 客户端上的JavaScript脚本可以直接访问浏览器的DOM并修改页面的内容 在客户端直接输
  • 三大linux系统对比

    概述 xff1a centos作为服务器部署是第一选择 CentOS去除很多与服务器功能无关的应用 xff0c 系统简单但非常稳定 xff0c 命令行操作可以方便管理系统和应用 xff0c 丰富的帮助文档和社区的支持 ubuntu最佳的应用
  • SQL数据查询之单表查询

    目录 语句格式 选择表中的若干列 查询表中所有列 选择表中的若干元组 查询满足条件的元组 字符匹配 涉及空值的查询 多重条件查询 ORDRD BY子句 聚集函数 GROUP BY子句 语句格式 SELECT ALL DISTINCT lt
  • NVIDIA CUDA安装失败解决方法

    CUDA安装失败原因可能与显卡驱动安装有关 xff0c 之前安装的显卡驱动影响了cuda安装 xff0c 建议就是清除原本的显卡驱动安装 xff0c 自动重启 xff0c 再重新安装cuda 下载显卡驱动安装工具解压 百度网盘链接 xff1
  • Jenkins在Linux环境下的安装与配置,包含遇到的问题以及解决方法

    一 Jenkins简介 Jenkins是一个开源软件项目 xff0c 是基于Java开发的一种持续集成 xff08 CI xff09 工具 xff0c 用于解决持续重复的部署 监控工作 xff1b 它一个开放易用的软件平台 xff0c 大大
  • win10添加ubuntu的网络硬盘,实现远程操作ubuntu硬盘

    1 前言 在工作时候经常需要在本地windows10和另外一台ubuntu上实现数据共享 xff0c 如果使用远程工具会非常麻烦 xff0c 需要收发文件 既然在同一个局域网情况下 xff0c 那么有没有办法实现远程操作硬盘呢 xff0c
  • (1)数据包嗅探和欺骗-SEED Ubuntu 20.04

    数据包嗅探和欺骗 网络安全课程实验一 在做的时候参考了很多网上主要就是CSDN上的教程 xff08 感觉最近还是很忙 xff0c 所以等我有空想起来再来写这个教程 xff09 xff08 下面放一下我的实验报告部分 xff0c 里面有流程
  • 实验一的命令代码

    实验一 dcbuild 下载容器所需的image镜像 xff0c 如果已经有了 xff0c 就跳过 dcup 即docker compose up 安装容器并启动 cd Labsetup1 1 1 vi test1 py 写一个python
  • 安装Proxmox VE系统报错

    安装Proxmox VE系统 报错内容如下 xff1a Waiting for dev to be fully populated 8 344009 hdaudio hdaudioCoD2 Unable tobind the codecdo
  • PUT和DELETE部署在内网服务器后 外网无法请求的问题

    PUT和DELETE部署在内网服务器后 外网无法请求的问题 这问题困扰我好几天 xff0c 本身就不是搞运维的 xff0c 且实习时长 俩年半 半年的小辣鸡 xff0c 被赶鸭子上架 系统部署在甲方的内网服务器里 xff0c 然后他们通过V
  • C语言冒泡排序法,用函数形式实现。

    冒泡排序法 释疑 xff1a 冒泡排序法是将数组中的元素依次从小到大 xff08 Also 从大到小 xff09 进行排序下来 请看如下操作 xff01 共有4个数 xff0c 如 2 xff0c 4 xff0c 1 xff0c 3 进行N
  • Gorm之下载安装gorm.io/driver/sqlite依赖

    文章目录 Gorm之下载安装gorm io driver sqlite依赖1 会出错2 下载MinGW3 配置MinGW环境变量4 检测是否配置成功5 再次下载依赖即可成功 Gorm之下载安装gorm io driver sqlite依赖
  • Sheep to sheep

    背景 最近被这只羊折腾的够呛 xff0c 不管怎样就是过不了 xff0c 最终幡然醒悟 xff0c 还是得借助点外力 xff0c 上点技术手段才行 在网上找一下可行的方法 xff0c 看到比较简单的方法有两种 xff1a 抓包 xff1b
  • CentOS8.4 OpenLDAP服务配置

    目录 OpenLDAP简介 基本操作 配置文件 服务端配置 配置下载证书 生成数据库并设置权限 调用模块 定义访问和认证信息 定义目录结构 配置用户认证结构 测试 NFS服务配置 客户端配置 测试 挂载用户目录 相关知识 注意事项 环境 服
  • C语言排序算法之选择排序

    文章目录 一 选择排序的概述二 选择排序算法代码详解 xff08 1 xff09 算法分析 xff08 2 xff09 选择排序算法代码详解 三 总代码 一 选择排序的概述 选择排序 xff08 Selection sort xff09 是
  • CodeForces - 501B Misha and Changing Handles(Map)

    题目大意 xff1a 就是讲在codeforces网站上 xff0c 由于一个黑客 xff0c 大家都可以随便改名字了 xff0c 有的人就改了一次又一次 xff0c xff08 当然也有的人就只改一次 xff09 然后题目问你一共有多少个
  • LINUX文件编程之——open(文件打开及创建)

    文件的打开及创建 C语言打开及创建文件需要用到open 函数 xff0c open函数在三个头文件当中 xff1a open函数 函数原型 xff1a open函数的返回值是一个小的 非负整数 xff0c 这个整数是被open打开的文件描述
  • linux文件编程之——write、read、lseek、close(文件的写、读、光标移动,关闭操作)

    文件的写入 xff08 write xff09 昨天已经学习了文件的打开及创建 xff0c 及使用open函数 xff0c 传递不同的参数可以实现文件的打开及创建 xff0c 并赋予文件的权限 xff0c 今天延续昨天的学习内容 文件的写入
  • 嵌入式笔试——笔试题目

    单选 xff08 15题 xff09 第一题 栈简介 栈由操作系统 xff08 编译器 xff09 自动分配释放 xff0c 用于存放函数的参数值 局部变量等 xff0c 其操作方式类似于数据结构中的栈 堆简介 堆由开发人员分配和释放 xf