"C语言进阶-程序的执行"
一直打算开一个C语言的课程, 经过思考打算直接从C语言进阶讲起. 学习本课需要具备基本的C语言知识, 如果在学习中遇到不会的内容, 死活不懂的, 可以去搜索引擎查询. 需要有Linux操作基础, 至少会一些简单的shell命令, vim的简单实用. 下面咱们开始.
01
编译
直接看代码:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
int a = 5;
int b = 17;
printf("main: a = %d, b = %d, argc = %d\n", a, b, argc);
}
说明:
1、此程序通过调用printf来打印信息. printf是C语言提供的一个函数.
2、使用printf之前要引用stdio.h包. stdio.h是标准化输入输出的一个头文件.
3、C程序中, 起始点是main函数.本程序成功运行后会返回EXIT_SUCCESS.
4、argc表示的是程序运行时参数数量总和.
在linux中我们运行
gcc prog1.c -o prog
进行编译, -o表示将prog1.c编译为名称叫prog的可执行文件.
执行
gcc prog1.c -o prog1.c
可以擦除prog1.c文件.
执行命令
./prog
运行"./"表示本地目录, 咱们多运行几次看看结果:
$./prog
# main: a = 5, b = 17, argc = 1
$./prog 1
# main: a = 5, b = 17, argc = 2
$./prog 1 2
# main: a = 5, b = 17, argc = 3
这里argc是变化的, 验证了上面的第4条
02
重定向输出
从程序中重定向信息并将其保存至一个文件中是很有用的. 下面为几个可能用到的情景:
1、一个程序打印的过多过快, 电脑屏幕显示不了所有内容. 也可以用管道.
2、程序运行的时间长, 稍后再看.
3、检查程序再次运行时的输出是否与之前相同是很有用的. 若程序产生好多行的输出, 一行一行去检查它的输出将是大量的工作.
4、程序可能需要在多台机器上同时运行, 同时去看多个显示器上的输出是不可能的.
那么如何使用重定向输出呢? 看下面:
$./prog 1 2 3 > prog.txt
$ cat prog.txt
# main: a = 5, b = 17, argc = 4
使用">“来重定向, 还有”>>"表追加, "2>&1"将错误输出追加到正确输出的位置, 等等这些是linux基础, 这里不多解释. 关于C语言的第一篇先介绍到这里.