Linux C 学习
文章平均质量分 81
u010875004
这个作者很懒,什么都没留下…
展开
-
C指针加整数、两个指针相减的问题
源文是写C++情况下的,我做测试用的是C, Linux环境下。我做的,就是写下测试程序,来验证C环境下的结果。原文内容:说来惭愧,写C++有一段时间了。这个问题从来没有认真考虑过,此次标记于此:考虑如下问题:1 char a[20];2 int *ptr = (int *)a;3 ptr++;第3句ptr++实际为ptr右移一个int空间(即4个转载 2013-06-08 17:31:30 · 1402 阅读 · 0 评论 -
Linux下各文件夹的含义
在 Linux系统里面,“分区”,被称作“挂载点”,简单明了的说,“挂载点”意思就是:把一部分硬盘容量,“分”成一个文件夹的形式,用来干什么事情。这个文件夹的名字,就叫做:“挂载点”。所以,和Windows有着本质上的超级大的区别,你在任何linux发行版系统里面,绝对不会看到C盘,D盘,E 盘这样的,你能看到的,只有“文件夹”形式存在的“挂载点”。 在Linux 系统里面,有一些已转载 2013-06-03 14:56:38 · 534 阅读 · 0 评论 -
自己写的setjmp longjmp小例子
#include "apue.h"#include #include jmp_buf jmpbuffer;//int i = 0;//static int i = 0;int main() {// volatile int i = 0;// int i = 0; register i = 0; int tmp = setjmp(jmpbuffer); if原创 2013-06-14 11:46:45 · 690 阅读 · 0 评论 -
测试v_fork以及关闭标准输出后输出结果
#include "apue.h"#include int glob = 6;/* * 测试v_fork的例子,v_fork创建的子进程, 在父进程的空间里面执行, 而v_fork的父进程, 则会等待子进程运行完毕后执行。 * 而fork创建的子进程,则会复制你进程的空间, 分别在各自空间运行,互不影响, 而父子进程谁先运行完,不确定。 * */int main(void) {原创 2013-06-14 17:16:05 · 795 阅读 · 0 评论 -
GDB调试精粹及使用实例
一:列文件清单 1. List (gdb) list line1,line2 二:执行程序 要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符()和外壳通配符(*、?、[、])在内。 如果你使用不带参数的run命令,gdb就再次使用你给予前一条run命令的参数,这是很有用的。 利用set args 命令就可以转载 2013-06-07 14:10:21 · 517 阅读 · 0 评论 -
Linux C 经典题目总结
源文地址:http://blog.csdn.net/xuexingyang/article/details/7434027【第一部分 C基本概念】【几个关键字】1)、auto关键字: 声明变量的生存期为自动,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。不明白?无视他好了,编译器默认的缺省情况下,所有的变量都是auto的。转载 2013-06-17 16:17:54 · 778 阅读 · 0 评论 -
sockaddr与sockaddr_in
源文地址: http://blog.sina.com.cn/s/blog_8b82271301018d5s.htmlstruct sockaddr { unsigned short sa_family; char sa_data[14]; };此数据结构用做bind、connect、recvfrom、sendto等函数的参数,指明地址信息。转载 2013-07-11 11:25:26 · 559 阅读 · 0 评论 -
《高效编程十八式》(11/13)调试 王伟冰
源地址: http://blog.csdn.net/kaparo/article/details/5887876 调试可以深入程序内部,观察运行时各个变量的值。但是,并不是一出现bug就要调试。调试最适合用来探究一些自己不太熟悉的语言特性或者是技术。比如你对C++某些语句的作用不太熟悉,对某个库函数的作用不太熟悉,调试一下,就可以看得清清楚楚了。如果程序只是逻辑出错误,最好的转载 2013-07-24 11:09:01 · 1205 阅读 · 0 评论 -
Printf() 输出格式控制
1.转换说明符 %a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99) %c 字符 %d 有符号十进制整数 %f 浮点数(包括float和doulbe) %e(%E) 浮点数指数输出[e-(E-)记数法] %g(%G转载 2013-06-09 15:29:40 · 837 阅读 · 0 评论 -
LINUX-C成长之路(三):基本IO函数操作
在学习C语言的时候,基本的输入输出是非常重要的,因为我们时常要接收用户的输入,而且时常要将结果输出到屏幕,因此非常有必要注重地学习一下。最常用的两个基本IO函数莫过于 printf() 和 scanf() 了,下面首先来详细地介绍一下它们。来看第一个示例代码:[cpp] view plaincopy//example1.转载 2013-06-01 14:31:54 · 680 阅读 · 0 评论 -
三种方式列出目录下所有文件
#include int main() { initscr(); getch(); endwin(); return 0;}这个是Linux 下getch的用法, 注意的情况,当然只有两个了。1. getch()用之前, 需要加上inistscr(), endwin(), 才能出现一个空界面,让你随便输入一个字符,再返回到命令行模式。2. 编译时, 由于 curses.h对原创 2013-06-08 16:03:52 · 1609 阅读 · 0 评论 -
LINUX-C成长之路(六):函数要义
C语言之所以被称为模块化语言,原因在于C语言的程序结构是由一个个的“模块”搭建起来的,这些所谓的模块就是函数,因此,函数是构成C程序的最基本的组件,我们的程序的功能可能很复杂,但是我们可以通过函数来分解,然后在组装它们,这种做法在遇到大规模软件工程之前,是非常主流的想法。在目前的软件开发中,也大量使用像C语言这样的模块化语言来描述问题,只不过当今世界,在面临大规模软件工程的开发时,面向对象语言也许转载 2013-06-01 17:50:39 · 537 阅读 · 0 评论 -
LINUX-C成长之路(七):数组与指针
谈到C语言编程,数组和指针是很多人的心头大石,总觉得它们是重点难点,重点是没错的,但绝不是什么难点,要说C语言的难点,客观地讲应该是带参宏,而数组和指针,概念浅显易懂,操作简洁方便,根本不是很多初学者想象的那么困难,所以一开始就要有充分的信心,其次,恰恰是因为它们的“方便”,导致如果一不小心会用错,所以数组和指针,尤其是指针,与其说它难,还不是说他容易用错,我们在使用的时候要格外小心。转载 2013-06-01 18:09:07 · 676 阅读 · 0 评论 -
LINUX-C成长之路(八):存储类,动态内存
C语言有几个关键字,在定义一个变量或者一个函数的时候,指定其存储区域类型,被称为存储类关键字,它们是:static,extern,register 和 auto下面逐一讲解。1,static其实这个关键字有三个作用,而不仅仅是存储类型。请看下面代码:[cpp] view plaincopy// 1.修饰函数,使转载 2013-06-01 18:23:33 · 621 阅读 · 0 评论 -
LINUX-C成长之路(一):LINUX下C编程概要
由于C语言是进入LINUX开发,尤其是LINUX底层开发的必备技能,因此掌握C语言也成为很多想从事LINUX相关开发工作的朋友的一道坎,C语言较之其他编程语言,特点是简洁高效,没有过多冗余鸡肋的概念,本博客打算用连载的方式,将LINUX下的C语言编程所涉及的所有技术点一一剖析和展现,为了避免陷入教条式讲解的歧途,我将采用各个击破的方式,每一篇博客集中讨论关键点问题,让读者一目了然。转载 2013-06-01 10:00:16 · 771 阅读 · 0 评论 -
LINUX-C成长之路(二):基本数据类型
C语言是一种强数据类型编程语言,换句话讲,不像弱数据类型的语言比如shell脚本语言那样,没有特殊的变量数据类型,统统都是字符串。而C语言是有严格的数据类型的规定的。来看一下下面这段代码:[cpp] view plaincopy//example2.c #include int main(void) {转载 2013-06-01 10:22:13 · 685 阅读 · 0 评论 -
LINUX-C成长之路(四):运算符
C语言提供了丰富的运算符,比如算术运算符、关系运算符、逻辑运算符等,下面的表格是C语言中所有的运算符一览:算术运算符运算符功能说明举例+加法,或单目取正a+b, +n-减法,或单目取负a-b, -n*乘法a * b/除法a / b%取模(求余)a %转载 2013-06-01 16:53:28 · 664 阅读 · 0 评论 -
LINUX-C成长之路(五):控制流
C 语言是一种 “高级” 语言,所谓的高级,就是拥有逻辑控制语句,可以使得我们实现诸如 循环、分支、跳转等操作。我们来逐一分析。第一,循环语句。 C语言中,总共有3种循环语句,它们分别是 while 循环, do_while 循环 , 和 for 循环。1,while循环,下面是示例代码:[cpp] view plaincopy转载 2013-06-01 17:10:34 · 615 阅读 · 0 评论 -
cp 的强制覆盖
Linux下默认cp命令是有别名(alias cp='cp -i')的,无法强制覆盖,即使你用 -f 参数也无法强制覆盖文件,下面提供两种Linux下cp 覆盖方法.1) 取消cp的alias,放心这不是永久生效#unalias cp#cp a /test/a2) 用 \cp 执行cp命令时不走alias#\cp a /test/a上面两种是网中人给的解决方案转载 2013-07-24 16:36:26 · 679 阅读 · 0 评论