基础部分
文章平均质量分 76
星星星星星_
你只管努力,其他的交给天意
展开
-
main函数相关问题探讨
main函数相关问题探讨我们接触到C语言很久了,所有人的第一个C程序应该就是HelloWorld.c而main函数又是所有程序的入口,我记得我在VC下写的第一个HelloWorld是这样#include <stdio.h>void main(void){printf("Hello,world\n");}现在我们都知道这样的说法void类型不接收也不传递任何信息,mai...原创 2018-10-29 19:16:04 · 302 阅读 · 0 评论 -
编译和链接那点事感悟 -2018.9.3
在拜读了刘欢所写的编译和链接那点事后,对编译和链接有了深一步的理解,所谓编译链接即是将无法直接运行的高级语言等转化为计算机可以直接识别的机器语言必不可少的步骤,根据流程画与理解出了gcc编译器的四个过程以及所做工作: gcc分为四个步骤:预处理(cpp)、编译(cc1)、汇编(as)、链接(ld)。预处理:头文件展开,宏定义展开,注释替换等,这里的展开是将宏定义所有的展开。...原创 2018-09-04 15:17:34 · 163 阅读 · 0 评论 -
Linux环境变量的讨论
我们都知道Linux一些命令有使用范围,而一些任何地方都可以使用,在Linux下时不时要配环境,那么环境到底是什么?与其说我们需要配环境,不如说是在环境的帮助下我们才能执行命令。在Linux下环境变量是PATH,首先查询一下当前环境:xxx@xxx-ThinkPad-X230-Tablet:~$ echo $PATH/usr/local/sbin:/usr/local/bin:/usr/s...原创 2018-11-11 21:36:45 · 130 阅读 · 0 评论 -
头文件与函数定义分离的处理
在工程中很多时候我们需要把函数体与主函数分开处理,相信这种已经非常常见了,只需要在主函数文件中包含#include ”filename.c“即可,当然现在编译器已经足够聪明,不需要写#include ”filename.c“都可以自己找到编译,但是好习惯还是要养成的。而这次我编译Linux系统编程之实现who命令的时候采用的是将函数编译为静态库进行链接的形式。首先要把函数体拿出使用gcc -c ...原创 2018-11-11 22:54:34 · 900 阅读 · 0 评论 -
系统调用学习
系统调用学习系统调用的实质就是函数调用,只是调用的函数是系统函数,处于内核态。API与系统调用的区别:每个系统调用对应一个服务例程,但一个API可对应多个系统调用。有些API直接提供用户态服务不需要用到系统调用。为什么不直接调用内核函数执行?就可以省掉系统调用这个步骤?用户空间程序不能直接执行内核代码,内核在受保护的地址空间上,不允许用户进程在内核地址空间上读写,极大地提高了系统的...原创 2019-03-08 13:41:46 · 284 阅读 · 0 评论