Linux下的C语言学习笔记(1)

时间:2021-12-16 09:17:39

------------------------------day1---安装Vim和更新命令---------------------------------------

1、更新资源:sudo apt-get update

2、安装软件 vim:sudo apt-get install vim

sudo :以管理员权限
cc -v:检查cc编译器(gcc编译器)
clear:清理屏幕
cd :表示进入某个目录 cd ~:进入当前目录的家目录
pwd:查看当前所在路径
ls:查看当前目录下包含文件及文件夹 ls -l:查看当前目录下文件

的详细信息
touch :新建文件XX rm :删除文件XX mkdir :新建文件夹XX
vi(vim) :编辑文件XX

esc:返回命令模式
在命令模式下输入:
:w 保存(write写入)
:q 退出

i:当前光标前插入字符
shift + i:当前行行首插入字符
a:当前光标后插入字符
shift + a:当前行行尾插入字符
o:在下一行插入字符
shift + o:在上一行插入字符
x:删除单个字符

dd:删除所在行

------------------------------day2-第一个Linux下的C语言程序(配置ubuntu网络)---------------------------------------

1,Linux下的C语言有点不同:#include<stdio.h>
int main() //Linux环境下用int{    ........;
}2,C语言程序的编译:cc lx.c   或者 gcc lx.c执行lx.out命令格式:        ./lxout
3,配置网络:参考网址:http://www.jb51.net/os/Ubuntu/145386.htmlNET模式:选择net模式,打开虚拟机网络编辑器,选择VMware8进入ubuntu后选择网络为DHCP自动配置Linux下的C语言学习笔记(1)

------------------------------day3-一些常用快捷操作和“Makefile”---------------------------------------

一:编辑普通文件:1. 同时打开两个窗口 —— :sp + 文件名;
2. 两个文件之间的切换 —— Ctrl+W+上/下;
3. 打开行号 —— :set + nu;
4. 剪切 —— 数字+dd;
5. 粘贴:p
二:编辑Makefile:$lsmin.c  max.c  main.c  $vi Makefile#this is a Makefile main.out:max.o min.o main.c    #说明main.out依赖max.o,min.omain.c    gcc max.o min.o main.c -o main.out#注意开头的‘Tab’键而不是空格,-o main.out指定输出为main.outmax.o:max.c                    #说明max.o依赖max.c    gcc -c max.cmin.o:min.c    gcc -c min.c                #说明min.o依赖min.c$lsmin.c  max.c  main.c  Makefile
$make$lsmin.c  max.c  main.c  Makefile  min.o  max.o  main.out 
》>>>编写了Makefile后每次编译只需要编译改动后的,已经编译好的不需要再次编译。

------------------------------day4---C语言main函数---------------------------------------

1,main函数的完整形式#include<stdio.h>int main(int argv,char* argc[]){    printf("hello world!!!\n");    return 0;    //"return 0"表示返回的值为0,}$gcc main.c -o main.out && lshello world!!!ls命令罗列出当前文件夹下的文档2,main函数的两个参数#include<stdio.h>int main(int argv,char* argc[]){    printf("argv is %d\n",grav);    int i;    for(i=0;i<argv;i++)    {        printf("argc[%d]is: %s\n",i,argc[i]);    }    return 0;    //"return 0"表示返回的值为0,}$gcc main.c -o main2.out$./main2.out -l 123 2342 4343 000argv is 5argc[0]is: ./main2.outargc[1]is: -l
argc[2]is: 123
argc[3]is: 4343
argc[4]is: 000
由此可见argc[]是接收执main函数的参数的一个数组,而argv是参数的数量

------------------------------day5--C语言标准输入输出和错误流和重定向---------------------------------------

1,输入输出和错误流#include<stdio.h>/*stdin:输入流文件stdout:输出流文件stderr:错误流文件*/int main(){    //printf("please inout the value a:\n");    fprintf(stdout,"please input the value a:\n");    int a;    //scanf("%d",&a);    fscanf(stdin,"%d",&a);    if(a<0){        fprintf(stderr,"the value must > 0");        return 1;    }    return 0;    //"return 0"表示返回的值为0,}2,重定向和管道:1)输出重定向$./exp.out 1>> exp.txt或./exp.out >> exp.txt#然后“./exp.out”输出的值会输入到“exp.txt”中;$./exp.out 1> exp.txt#“>”只查看最新的记录,覆盖模式。2)输入重定向$vi input.txtinput.txt中写入
12:wq#退出$./a.out < input.txt  #就相当于输入了两个值$./a.out 1> t.txt 2>f.txt <input.txt 可以同时设定标准输出流,标准错误流,标准输入流指定到特定文件中Linux下的C语言学习笔记(1)
3)管道符 “|”和linux里面的一样,可以连接两个C语言程序例如:$./add.out | ./ avg.out最后执行结果

------------------------------day6--gdb调试命令    ---------------------------------------

1,常用命令list      列出调试文件的源代码break 行号  //设置调试断点 start       //开始执行p 变量      //查看变量当前值n           //运行下一行代码step(或s) //执行下一行语句,如果有函数调用则进入到函数中
bt          //查看函数堆栈f 栈号      //跳到“栈号”中函数
命令 描述
backtrace(或bt) 查看各级函数调用及参数
finish 连续运行到当前函数返回为止,然后停下来等待命令
frame(或f) 帧编号 选择栈帧
info(或i) locals 查看当前栈帧局部变量的值
list(或l) 列出源代码,接着上次的位置往下列,每次列10行
list 行号 列出从第几行开始的源代码
list 函数名 列出某个函数的源代码
next(或n) 执行下一行语句
print(或p) 打印表达式的值,通过表达式可以修改变量的值或者调用函数
quit(或q) 退出gdb调试环境
set var 修改变量的值
start 开始执行程序,停在main函数第一行语句前面等待命令
step(或s) 执行下一行语句,如果有函数调用则进入到函数中

---------------------------------------------------------------------------------------

//后记:

/*  从云笔记搬运过来,真是体力活。。。 */