首页
zfl9's blog
取消

C语言 程序的内存布局

内存布局 text:代码段,存放程序的二进制代码、字面量(整数常量、浮点常量、字符常量、字符串字面值、枚举常量),该区域的大小在编译期间即可确定,在运行期间通常是只读的; data:存放已初始化且初始值非零的静态变量的全局数据段,静态变量在进程启动时被依次赋值,在进程结束时被系统释放,该区域的大小在编译期间即可确定,在运行期间是可读写的,但是整个 d...

C语言 变量与数据类型

全局变量 全局变量: 定义在所有函数之外的变量,属于 static 存储类,默认初始值为 0 局部变量: 函数的形参,函数体内定义的变量,代码块内定义的变量,属于 auto 存储类,需手动初始化,否则为垃圾值 注意:函数体外只能进行全局变量的初始化,不能进行赋值运算。 int i; // 正确,i = 0 int i; // 正确,i = 0 i = 10; //...

C语言 输入与输出

GCC 编译步骤 GNU 编译器套装(英语:GNU Compiler Collection,缩写为 GCC),指一套编程语言编译器,以 GPL 及 LGPL 许可证所发行的自由软件,也是 GNU 项目的关键部分,也是 GNU 工具链的主要组成部分之一。GCC(特别是其中的 C 语言编译器)也常被认为是跨平台编译器的事实标准。1985 年由理查德·马修·斯托曼开始发展,现在由自由软件基金会负...

字符集、字符编码

字符集、字符编码 百度百科: 字符(Character) 是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。 字符集(Character set) 是多个字符的集合,字符集的种类较多,每种字符集包含的字符数量及字符种类都不尽相同,常见的字符集:ASCII、GB2312、BIG5、GB18030、Unicode。 计算机要准确的处理各种字符集文字,需要进行 字符编码,...

Linux ulimit

ulimit 用于限制 shell 启动的进程所占用的资源,如进程最多能打开多少文件。 ulimit 命令 $ ulimit -a -t: cpu time (seconds) unlimited -f: file size (blocks) unlimited -d: data seg size (kbytes) u...

Shell 脚本选项

options 除了使用 shopt 设置 shell options 外,还可使用 set 命令来设置 bash 的一些 options: set -v 表示启用脚本回显功能(执行一条命令前会先打印一下) set +v 表示禁用脚本回显功能(默认就是禁用) 总之记住,set -XXX 就是启用某选项,而 set +XXX 就是禁用某选项 除了通过 set 来设置,也可通...

Shell 信号处理

在 C/C++ 中我们可以使用 signal() 函数为某个信号注册一个处理函数,这样当我们的程序收到给定信号时,就会自动执行我们指定的处理函数,这在某些时候非常有用。 那么我们能否在 shell 脚本中捕捉指定的信号,然后注册对应的处理函数呢? 当然是可以的,使用内置命令 trap 即可,用法非常简单,trap cmd_string signals...。 cmd_string 是对...

Shell 别名扩展

本文特指在 shell 脚本(shell script)中使用 alias 别名。 在交互式 shell 中,我们可以使用 alias mycmd='command args...' 来创建一个别名,当我们执行 mycmd 命令时,实际上执行的是 command args... 命令,通常我们会为长命令创建一个短别名,方便使用。 那么你有尝试过在 shell script 中使用...

Shell 参数解析

一般的 shell 脚本都不会有太复杂的命令行参数,这时候使用$n获取位置参数就足够了。 但是,有些时候需要解析一些比较复杂的命令行参数,这时候就需要 shift 和 getopts 了。 shift shift是 shell 的一个内建命令,常用于位置参数的解析; shift 将所有位置参数(除$0)往前移动一个单位,即丢弃最前边的参数; 如:shift 3,往前移动三个位置、不...

Shell 特殊命令

常用内建命令 ::总是返回真(0),不产生输出,因此经常用来清空文件; true:和:一样,总是返回真(0),不产生输出,常用于构建无限循环; false:和true相反,总是返回假(1),不产生输出; test:用于条件测试,基本同 [; [:用于条件测试,需使用]结尾; [[:用于条件测试,需使用]]结尾,支持正则、通配符; eval 语法:eval C...