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

------------------------------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,配置网络:
NET模式:
选择net模式,
打开虚拟机网络编辑器,
选择VMware8
进入ubuntu后选择网络为DHCP自动配置

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

一:编辑普通文件:
1. 同时打开两个窗口 —— :sp + 文件名;
2. 两个文件之间的切换 —— Ctrl+W+上/下;
3. 打开行号 —— :set + nu;
4. 剪切 —— 数字+dd;
5. 粘贴:p
二:编辑Makefile:
$ls
min.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.out
max.o:max.c                    #说明max.o依赖max.c
    gcc -c max.c
min.o:min.c
    gcc -c min.c                #说明min.o依赖min.c
$ls
min.c  max.c  main.c  Makefile
$make
$ls
min.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 && ls
hello 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 000
argv is 5
argc[0]is: ./main2.out
argc[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.txt
input.txt中写入
1
2
:wq#退出
$./a.out < input.txt  #就相当于输入了两个值
$./a.out 1> t.txt 2>f.txt <input.txt 可以同时设定标
准输出流,标准错误流,标准输入流指定到特定文件中

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) 执行下一行语句,如果有函数调用则进入到函数中

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

//后记:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值