Linux应用层开发学习记录---(1)基础知识

本文详细介绍了GCC编译器的四个主要阶段:预处理、编译、汇编和链接,以及应用程序在内存中的布局,包括代码段、数据段、堆和栈的分配与作用。同时,对比了Linux系统调用函数与C库函数在文件操作中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.GCC

1.预处理(.c➡.i)对各种预处理命令进行处理,包括头文件包含、宏定义的扩展、条件编译的选择等。
2.编译(.i➡.s)生成汇编文件。
3.汇编(.s➡.o)汇编翻译为机器码。
4.链接(.o➡.out)链接各种库(静态连接和动态链接),得到可执行文件。

2.应用程序的地址

从低地址(虚拟地址0x48000)到高地址分别为代码段、数据段、堆、栈。
1.代码段:代码、全局常量和字符串常量。
2.数据段:全局变量和静态变量。
3.堆:动态分配的变量。
4.栈:局部变量(不包括加了static的局部变量)。

3.文件操作

分为两种:基于Linux的系统调用函数和基于C库的函数。
1.系统调用函数:open、creat、close、write、read、lseek等等
2.C库函数:fopen、fclose、fread、fwrite、fseek等等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值