Linux
文章平均质量分 66
Baecy777
这个作者很懒,什么都没留下…
展开
-
【Linux】C库函数与系统调用的区别
一、系统调用 1)系统调用可以理解是操作系统为用户提供的一系列操作的接口(API),这些接口提供了对系统硬件设备功能的操作。 举个例子,我们最熟悉的 hello world 程序会在屏幕上打印出信息。程序中调用了 printf() 函数,而库函数 printf 本质上是调用了系统调用 write() 函数,实现了终端信息的打印功能。 2)系统调用是操作系统相关的,因此一般没有跨操作系统的可移植性。 二、库函数 1)库函数可以理解为是对系统调用的一层封装。可以当成应用程序设计人员与系统调用程序之间的一个中间层原创 2021-03-13 11:11:49 · 433 阅读 · 0 评论 -
【Linux】关于cmake与make
当程序只有一个源文件时,可以用gcc命令编译。但如果源文件太多,一个一个编译时就会特别麻烦, 于是就有了make工具,可以来批处理编译源文件。 于是人们想到,为什么不设计一种类似批处理的程序,来批处理编译源文件呢,于是就有了make工具,它是一个自动化编译工具,你可以使用一条命令实现完全编译。但是你需要编写一个规则文件,make依据它来批处理编译,这个文件就是makefile,所以编写makefile文件也是一个程序员所必备的技能。 对于一个大工程,编写makefile实在是件复杂的事,于是人们又想,为什么原创 2020-08-16 09:52:15 · 1090 阅读 · 0 评论 -
【Linux】gcc——预编译 编译 汇编 链接
main.c ==>main要经历四步骤: 预编译 编译 汇编 链接 一、预编译 gcc -E main.c -o main.i 处理 “#” (1)删除#define,并作文件替换 (2)递归展开头文件(头文件里还可以嵌套) (3)处理预编译指令( 如#if #endif) (4)删除所有注释 (5)添加行号和文件名标识 (6)保留#pragma指令 二、编译 gcc -s main.c -o main.s (1)词法分析 (2)语法分析(一行表达式) (3)语义分析(结合上下文)原创 2020-08-15 00:16:39 · 230 阅读 · 0 评论