Linux C语言编程基本原理与实践 学习笔记

1、本机搭建Linux开发环境为Vmware workstation 12 player + ubuntukylin-16.04-desktop-amd64,GCC编译器,Vim文本编辑器。

2、Vim编译器句法:

vim 命令模式:<大写字母=shift+小写字母>

esc-返回命令模式 :wq!-保存并强行退出 :set number-显示行号

i-当前光标前面插入字符 I<大写>-行首插入字符

a-当前光标后面插入字符 A<大写>-行尾插入字符

o-当前光标下一行插入字符 O<大写>-当前光标上一行插入字符

x-向右<后>删除字符 X<大写>-向左<前>删除字符

dd-剪切一整行 yy-复制一整行

ddn-光标所在行开始剪切n行 yyn-光标所在行开始复制n行

p-粘贴上面剪切或复制的行到光标所在行的下面 P<大写>-粘贴上面剪切或复制的行到光标所在行的上面

sp max.c(新建文件) 【将界面区分为上下两屏进行编码】  CTRL+W+上下方向键->切换  【上下两屏间切换】

3、gcc编译:  gcc -g -c filename.c -o filename

-g为了调试用的

加个-g 是为了gdb 用,不然gdb用不到

-o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。

一般语法:

gcc filename.c -o filename

上面的意思是如果你不打 -o filename 那么默认就是输出filemame.out.这个-o就是用来控制输出文件的。

-c 只编译不链接,产生.o文件,就是obj文件,不产生执行文件。(机器码)

4、gcc的编译流程分为4步:

预处理(Pre-Processing) -> 编译(Compling) -> 汇编(Assembling) -> 连接(Linking)

预处理:处理#include、#define、#ifdef 等宏命令

编译:把预处理完的文件编译为汇编程序.s

汇编:把汇编程序.s编译为.o二进制文件

链接:把多个二进制文件.o集合(链接)成一个可执行文件

5、 将不会再进行修改的那些函数;公共框架;公共类等,优先进行编译成为静态库。而只将需要经常修改的,即业务逻辑部分生成可执行代码,只需要重新编译这个部分。

6、make命令:在Linux和unix中非常重要,可以将大型的开发项目分解成诺干个模块,使用make工具可以很清晰和很便捷对几百上千个源文件进行整理。make内部也是使用的gcc。

7、main函数中,return 0:0代表可以正确返回并执行;

     &&:逻辑与 【gcc main.c -o main.out &&  ./main.out】

8、int main( int argc, char * argv[] )      argc获得文件名本身 + 输入字符的 总个数; argv[] 记录字符串。

   常用于Linux小工具开发、Linux嵌入式开发、Linux网络程序开发

9、Linux标准输入流、输出流、错误流:【0:stdin;1:stdout;2: stderr】

stdin 默认屏幕

stdout 默认键盘

stderr

linux把所有东西当作文件处理

printf("") 是对fprintf(stdout,"")函数的封装.

scanf("") 是对fscanf(stdin,"")函数的封装

10、标准输入流 0; 标准输出流 1。&>(覆盖)&>>(追加)。

11、管道:ls /etc/ | grep ab    //查看etc目录下含有ab 字符的文件

ps -e  查看进程

你可能感兴趣的:(Linux C语言编程基本原理与实践 学习笔记)