c语言
-
如何在Debian中使用GCC进行多线程编程
在debian系统中通过gcc实现多线程编程,你需要按照如下流程操作: 安装所需软件包: 在动手之前,请确认你的系统中已经安装了gcc和g++编译器。若尚未安装,请运行以下命令进行安装: sudo apt-get update sudo apt-get install build-essential…
-
初识Linux · 文件(1)



前言: 本文以及下篇文章,揭露的都是#%#$#%@%@%$#%$#%#%#$%@_e206a54e97690c++e50cc872dd70ee896中文件的奥秘,对于文件来说,初学linux第一节课接触的就是文件,对于c语言,我们使用fopen可以打开文件,对于c++,我们可以使用ofstream可…
-
【Linux】进程详解:进程的创建&终止&等待&替换



1. 前言? ?之前在这两篇文章中 【Linux】进程管理:状态与优先级调度的深度分析 【Linux】进程详解:命令行参数、环境变量及地址空间-CSDN博客 我们已经了解过了进程的基本概念,这一章我们要进一步的学习进程,即 **「进程的创建和终止」**。 2. 进程创建? 2.1 fork()函数的…
-
readdir在Linux中的递归遍历实现



在Linux环境下,readdir函数被用来读取目录中的各项条目。为了完成目录的递归遍历,你需要联合使用opendir、readdir和closedir函数,并且针对每一个子目录执行递归操作。以下是一个基于C语言的例子,演示了如何利用这些函数来递归遍历目录: #include #include #i…
-
Linux编译器-gcc/g++使用



背景知识 编译过程包括以下几个阶段: 预处理(进行宏替换):这一步主要进行宏替换、头文件展开、去除注释和条件编译。 编译(生成汇编):将预处理后的代码翻译成汇编语言。 汇编(生成机器可识别代码):将汇编语言转化为机器可识别的二进制代码。 连接(生成可执行文件或库文件):将多个目标文件和库文件连接成一…
-
初识Linux · 线程控制(1)



前言: 在前一篇文章中,我们已经探讨了线程的基本概念,了解到可以通过ps -aL命令查看线程。由于线程的特殊性,我们需要在用户层和操作系统层之间添加一个线程库,并在编译程序时将程序链接到这个线程库。 我们也初步学习了如何创建线程,使用pthread_create函数。然而,仅通过创建和概念来学习线程…
-
Linux:编译,链接,自动化构建工具



将c语言源代码编译成可执行程序的过程包括以下几个步骤,每一步都对源代码进行了不同的处理: 预处理(.c文件 -> .i文件) 目的:将头文件和宏进行替换,取消注释。文件从 code.c 变为 code.i。 现在我使用指令对 .c 文件进行预处理,让我们来看一下预处理后的代码: gcc -E …
-
【Linux课程学习】:《简易版shell实现和原理》 《哪些命令可以让子进程执行,哪些命令让shell执行(内键命令)?为什么?》



1.我们让子进程执行cd ..命令的时候,为什么我们执行pwd命令的时候,还是和之前一样,路径没有变化? 本质就是,我们更改的是子进程的环境变量pwd,没有改变父进程的。当执行pwd时,这个进程的环境变量还是由父进程来的。而父进程的环境变量没有改变,所以pwd出来的结果也没有改变。 2.环境变量是由…
-
FreeRTOS | 原理介绍和资源get(第十四天)



点击上方”蓝字”关注我们 01、什么是FreeRTOS? 02、获取资源 03、FreeRTOS的特点 04、为何选择FreeRTOS FreeRTOS的文档非常全面,官方网站上提供了所有需要的资料。FreeRTOS是免费且开源的,可以免费用于商业产品。开源特性使学习操作系统…
-
vscode无法调试c语言 显示launch怎么解决



当在Visual Studio Code中调试C语言代码时弹出选择调试环境并生成launch.json文件是正常现象,这是因为VS Code需要通过此文件明确如何启动调试器。问题的核心在于VS Code缺乏三个关键信息:1. 要调试的可执行文件;2. 使用的调试器程序(如GDB);3. 是否需先执行…