【学习笔记】正风的Linux自我修炼
文章平均质量分 75
古正风
与其心生敬佩,不如自己便是那样。
展开
-
【Linux】编译链接全过程
编译链接全过程在Linux下,当我们使用GCC来编译Hello World程序时,只须使用最简单的命令(源代码为hello.c)gcc hello.c./a.out事实上,上述过程可以分解为4个步骤,分别是预处理,编译,汇编和链接,如下图:预编译预编译阶段把.cpp和.h等文件编译成一个 .i文件,第一步预编译的过程相当于如下命令:gcc -E hello.c -o hello.i #-E表示只进行预编译,-o指定生成文件名预编译阶段主要处理那些源代码文件中以“#”开始的预编译指令。原创 2022-04-19 19:18:39 · 537 阅读 · 2 评论 -
【Linux】进程间通信机制——管道
进程间通信机制进程间通信机制又称IPC机制,包括管道、信号量、共享内存、消息队列、套接字。今天先简单介绍一下IPC机制之一的管道。管道在Linux系统中操作时,你一定会用到管道。管道可以用来在两个进程之间传递数据,比如:ps -ef | grep “bash”其中‘|’就是管道,其作用就是将 ps 命令的结果写入管道文件,然后 grep 再从管道文件中读出该数据进行过滤。那么现在大家可以思考一个问题:如果进程 a 要将从键盘获取的数据循环传递给另一个进程 b, 用已具备的知识思考应该如何原创 2021-11-28 16:08:57 · 1441 阅读 · 3 评论 -
【Linux】信号的使用
信号的基本概念在一个进程中可能会遇到各种各样的事件,比如:终端中断,终止等等。信号就是用来通知进程产生了某个事件。那么我们如何使用信号呢?首先,我们要通过系统调用kill()发送信号,然后我们在通过signal()相应信号。响应信号有三种方式:1.默认 2.忽略 3.自定义 与信号有关的系统调用在“signal.h”头文件中有声明。常见信号的值,及对应的功能说明: 信号的值在系统源码中的定义如下:#define SIGHUP 1#define SIGINT 2 //键盘按下 Ctr原创 2021-11-27 21:36:37 · 199 阅读 · 2 评论 -
【Linux】关于库文件的那些事
前言首先,问大家一个问题。问:大家在C语言中必定会用到的一个函数printf(),那么你知道这个方法的实现在哪里吗?答:就在C的库文件当中。问:那么C的库文件在我们Linux系统中又放在哪里呢?答:在/lib里面。了解到这些问题,我们再来深度的了解一下库函数。什么是库文件?问:库文件里存放这什么?答:库文件里面存放了很多编译好的方法,我们可以引用对应的头文件去获取这些方法。问:头文件里有什么?答:这些方法的声明。在我们编写程序的时候,在引用头文件有两种引用方法:#include&原创 2021-11-27 17:11:37 · 859 阅读 · 2 评论 -
【Linux】在Linux下使用C语言模拟实现mybash
学习Linux也有一段时间了,但是一直也没有写过总结。打算今天就开始写一个Linux的学习过程总结的专栏,希望可以和大家一起学习和进步。原创 2021-11-13 20:34:27 · 2851 阅读 · 5 评论