LinuxC基础编程
XuLujuncsdn
想要的,自己给自己。
展开
-
shell中 反引号用法
在测试下面脚本内容时,我们发现它们的输出内容不同,这样就引发了一个问题:反引号(`)与$()用法有区别吗?[plain] view plain copy echo `echo \\\\ ` echo $(echo \\\\ ) 将脚本内容修法改为8个反斜杠(\):[plain] view plain cop转载 2017-03-28 13:20:56 · 895 阅读 · 0 评论 -
变量及进程空间
一、声明与定义定义:创建一个变量,为其分配内存空间,并为它取名字(变量名),一个变量只能定义一次;声明:告知编译器,这个名字(变量名)已经匹配在一块内存上了,但是并未为其分配内存;二、变量初始化一般变量初始化的方法: 默认初始化规则: 全局变量、静态变量 局部变量 人工初始化: 数值变量 字符转载 2016-10-30 19:34:50 · 398 阅读 · 0 评论 -
Linux 环境下的vi编辑器详解(二)
一、普通模式在普通模式下输入小写字母v进入选择模式,输入大写字母V进入按行选择模式,按Ctrl+V组合键进入按列选择模式。转载 2016-10-07 21:43:17 · 329 阅读 · 0 评论 -
基本数据类型(二)
一、数据类型说明符号printf( )函数功能:向终端输出若干个任意指定类型的数据格式:printf("格式控制",参数表列);二、输出函数格式控制字符三、输入函数格式控制字符scanf( )函数功能:等待用户从键盘上输入数据,然后按格式控制的要求对数据进行转换后送到相应的变量地址中去。格式:scanf(“格式转载 2016-10-29 20:52:26 · 284 阅读 · 0 评论 -
Linux的文件系统
8. /tmp和/var 这两个目录用来存放临时文件和经常变动的文件。 9. /dev 这是一个非常重要的目录,它存放着各种外部设备的镜像文件,其中有一些内容我们是要牢牢记住的。例如第一个软盘驱动器的名字是fd0;第一个硬盘的名字是hda,硬盘中的第一个分区是hda1,第二个分区是hda2;第一个光盘驱动器的名字是hdc;此外,还用modem和其他外设的名字,在转载 2016-10-19 19:43:32 · 241 阅读 · 0 评论 -
输入5个数(含负数、小数)将它们按由小到大的顺序排列起来
/功能:实现自定义个数从小到大的排序#include #define MAXSIZE 100int sequence(float *num_array,int num){int i;int j;float tmp;for(i = 0;i {for(j = i + 1; j {if(*(num_array + i) > *(num_ar转载 2016-10-28 23:19:57 · 2127 阅读 · 0 评论 -
linux环境下的vi编辑器详解(一)
一、vi的工作模式vi编辑器是Linux系统上常用的文本编辑器,它的改进版本vim增加了很多扩展功能,使之更适合编辑各种程序语言的源代码。 vi有两种基本工作模式: 命令模式 输入的字符作为命令使用,不进入被编辑的文档中。 编辑模式 输入的字符将修改文档的内容。 在命令模式下,如果输入某些编辑命令,则切换到编辑模式;在编辑模式下,按Esc转载 2016-10-06 19:56:21 · 493 阅读 · 0 评论 -
C语言中的一些关键字(九)
一、关键字-enum枚举类型声明代表常量的符号名称。enum的默认值 enum kids{nippy, slats, skippy, nina ,liz};enum的指定值 enum levels {low=100,medium=500,high=2000};enum的用法 作为switch的标签typedef是C语言的关键字,其作用是为一种转载 2016-11-09 17:28:38 · 359 阅读 · 0 评论 -
Linux的文件系统结构
一、Linux的文件系统结构Linux的文件系统和MS-Windows的文件系统有很大的不同,对于微软视窗系统的文件结构我在这里不再多说,我们主要了结一下linux的文件系统结构. linux只有一个文件树,整个文件系统是以一个树根"/"为起点的,所有的文件和外部设备都以文件的形式挂结在这个文件树上,包括硬盘,软盘,光驱,调制解调器等,这和以"驱动器盘符为基础的MS-Windows系统是大不相转载 2016-10-18 18:52:41 · 390 阅读 · 0 评论 -
Linux环境下的脚本—shell(四)
一、FOR语句for循环与C语言中有所不同,在BASH中for循环的基本结构是:for var in [list]do#code blockdone其中var是循环控制变量, [list]是var需要遍历的一个集合,do/done包含了循环体,相当于c语言中的大括号。另外do和for被写在同一行,必须在do前面加上“;”如: for var in [list];do转载 2016-10-05 16:51:53 · 322 阅读 · 0 评论 -
Linux环境下的脚本—shell(三)
一、默认变量$#:传入脚本的命令行参数个数$*:所有命令行参数值,在各个参数值间留有空格$0:命令本身(shell文件名)$1:第一个命令行参数$2:第二个命令行参数二、局部变量在变量首次被复制时加上local关键字可以什么一个局部变量, 例S3: #!/bin/bashhello="var1“echo $hellofunction func1 {转载 2016-10-04 19:27:22 · 499 阅读 · 0 评论 -
vi编辑器的基本操作
1.简单回顾2.移动光标 0 数字0,将光标移动到该行的行首 $ 将光标移动到该行的行末 H 将光标移动到该屏幕的顶端 M 将光标移动到该屏幕的中间 L 将光标移动到该屏幕的底端 gg 将光标移转载 2016-10-20 20:06:30 · 549 阅读 · 0 评论 -
Linux环境下的GCC工具链详解(一)
一、说明 GNU/Linux系统上常用的编译工具是GCC。GCC实质上不是一个单独的程序,而是多个程序的集合,因此通常称为工具链。二、程序的编译过程 从C语言源码到可执行程序一般要经过以下的处理步骤:1. 预处理 在这一阶段,源码中的所有预处理语句得到处理,例如 #include语句所包含的文件内容替换掉语句本身 所有已定义的宏被展开 根据#ifde转载 2016-10-08 19:45:31 · 6373 阅读 · 1 评论 -
C语言中的一些关键字(一)
一、关键字-registerregister:请求编译器尽可能地将变量存在CPU内部寄存器中;使用注意:register修饰变量的类型必须是CPU所接受的;register变量可能不是在内存中存储,所以不能使用&来获取变量的地址二、关键字-static全局静态变量:作用范围局限于它的源文件,即只有本文件内的代码才可以访问它,变量名在其他文件内不局部静态变量:转载 2016-10-31 13:08:19 · 375 阅读 · 0 评论 -
嵌入式数据库(十五)
回家还有12天一、Delete语句 删除数据Delete From [Where ] 删除学号为95019的学生的记录Delete From StudentWhere Sno=95019 删除所有学生的选课记录Delete From SC二、打开函数原型:int sqlite3_open(const char* fileName转载 2017-01-13 10:25:41 · 407 阅读 · 0 评论 -
用文件方式复制内容到另一个文件
代码主题:/*****************************************************copyright (C), 2014-2015, Lighting Studio. Co., Ltd. File name:Author:Jerey_Jobs Version:0.1 Date: Description:Funcion原创 2016-11-15 10:11:27 · 515 阅读 · 0 评论 -
C语言中的一些关键字(十二)
位运算3.按位异或──^(1)格式:x^y(2)规则:对应位相同时为0,不同时为1:3^9=10。(3)主要用途:使1个数的某(些)位翻转(即原来为1的位变为0,为0的变为1),其余各位不变。4.按位取反──~(1)格式:~x(2)规则:各位翻转,即原来为1的位变成0,原来为0的位变成1:在IBM-PC机中,~0=0xffff,~9=0xfff6。(3)主要用途:间转载 2016-11-12 20:11:15 · 342 阅读 · 0 评论 -
使用文件输出hello
#include #include #include #include #include #include #include #include #define BUFFER_SIZE 50int main(){int fd;int i,bytes_write;int len;char *ptr;char buffer_wr原创 2016-11-14 22:03:15 · 377 阅读 · 0 评论 -
C语言的一些关键字(三)
一、关键字-externextern:表明变量或函数的定义在别的文件中,下面用到的这些变量或是函数是外来的,不是本文件定义的,提示编译器遇到此变量或函数时,在其他模块中寻找定义;/*fun1.h*/int a = 5;extern int b;/*fun1.c*/#include "fun1.h"void fun1(){ printf("fun1:转载 2016-11-02 18:14:25 · 254 阅读 · 0 评论 -
用链表实现通讯录编程
#include #include #include struct node //定义链表{char name[20];char phone_number[20];char home_address[20];char com_number[20];char id; struct node *prior;stru原创 2016-11-13 21:05:33 · 1323 阅读 · 0 评论 -
C语言的一些关键字(二)
一、关键字-constconst给读代码的人传达非常有用的信息。比如一个函数的参数是const char *,你在调用这个函数时就可以放心地传给它char *或const char *指针,而不必担心指针所指的内存单元被改写。尽可能多地使用const限定符,把不该变的都声明成只读,这样可以依靠编译器检查程序中的Bug,防止意外改写数据。const对编译器优化是一个有用的提示,编译器也许转载 2016-11-01 20:18:37 · 283 阅读 · 0 评论 -
将文档一和文档二中的数字相加到第三个文档
1.txtbegin10 11 1220 21 2230 31 32end2.txtbegin15 16 1725 26 2735 36 37end#include #include int main(){FILE *fp1;FILE *fp2;FILE *fp3;char ch1;原创 2016-11-16 12:47:00 · 397 阅读 · 0 评论 -
C语言中的一些关键字(十一)
一、表达式和基本语句-switchswitch语句可以产生具有多个分支的控制流程。 它的格式是: switch(控制表达式) { case常量表达式:语句列表 case常量表达式:语句列表 ... default:语句列表 }每个case 语句的结尾不要忘了加b转载 2016-11-11 19:38:50 · 217 阅读 · 0 评论 -
C语言中的一些关键字(十)
一、宏-#define函数式宏定义的优点尽管函数式宏定义和真正的函数相比有很多缺点,但只要小心使用还是会显著提高代码的执行效率,毕竟省去了分配和释放栈帧、传参、传返回值等一系列工作,因此那些简短并且被频繁调用的函数经常用函数式宏定义来代替实现。用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)写一个"标准"宏MIN函数 ,这个宏输入两个参数并返回较转载 2016-11-10 19:16:53 · 371 阅读 · 0 评论 -
C语言的一些关键字(八)
关键字-union有时候需要将几种不同类型的变量存放到同一段内存单元中。分配空间字对齐!4的整数倍!union node{ char ch[7]; int num;}; 占8字节!可以把一个整型变量、一个字符型变量、一个实型变量放在同一个地址开始的内存单元中。即使几个不同的变量共占同一段内存空间。所谓“共用体(union)”是指使几个不同的变转载 2016-11-08 20:46:22 · 309 阅读 · 0 评论 -
c语音基本数据类型(一)
一、基本数据类型基本类型:又称非构造性数据类型,其构造简单,是由系统事先定义好的。构造类型:又称复杂数据类型,一般由程序员将其它数据类型(包括构造类型本身)按一定的规则构造而成。指针类型:指针变量中只能存放地址(指针)。主要用于解决动态数据的建立、删除和使用。空类型: 主要用于数据类型的转换和定义函数的类型C程序中的数据类型有常量和变量之分,分别属于以上这些数据转载 2016-10-27 19:58:46 · 1370 阅读 · 0 评论 -
Linux环境下的脚本—shell(二)
一、变量在其他编程语言中您必须使用变量。在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明。要赋值给一个变量,您可以这样写:变量名=值取出变量值可以加一个美元符号($)在变量前面;变量赋值时,“=”两边都不能有空格BASH中的语句结尾不需要分号;例:HelloWorld #!/bin/sh #对变量赋值:a="hello wor转载 2016-10-03 19:48:55 · 327 阅读 · 0 评论 -
动态库与静态库
一、库的含义程序库:包含了一些通用函数的数据和二进制可执行机器码的文件,其单独不能够运行,但是如果将其与其他的可执行程序结合起来就可以执行了静态库:是在执行程序之前就已经加入到执行代码中,成为执行程序的一部分来执行的,后缀名:.a动态库:是在执行程序启动时加载到执行代码中,后缀名:.so二、静态库与动态库区别:动态库只有在使用它的程序执行时才被链接使用,而不是将需要的部转载 2016-09-28 22:06:02 · 312 阅读 · 0 评论 -
LinuxC下的gcc编译器
一、简介GNU CC(简称为gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。gcc不仅功能强大,而且可以编译如C、C++、Object C、Java、Fortran、Pascal、Modula-3和Ada等多种语言,而且gcc又是一个交叉平台编译器,它能够在当前CPU平台上为多种不同体系结构的硬件平台开发软件,因此尤其适合在嵌入式领转载 2016-09-27 21:46:18 · 451 阅读 · 0 评论 -
C语言中的一些关键字(五)
一、关键字-structstruct date{ int year; int month; int day;};struct student{ int num; char name[20]; char sex; struct date birthday; char转载 2016-11-04 19:25:59 · 402 阅读 · 0 评论 -
Linux环境下的make和makefile详解(四)
一、Makefile中的几个特殊变量二、Makefile变量的赋值定义或修改变量值的方法是使用赋值操作Makefile中使用变量时用的是$(),如果变量名只是一个字符,则小括号可以省略。 三、make工具的基本用法make工具的基本用法如下:make [-C dir] [-f file] [target ...]-C dir: 执转载 2016-10-13 22:14:34 · 319 阅读 · 0 评论 -
自己编写的字符串处理函数
#include //#include #define MAX_SIZE 1024/*把值定义在外面容易修改*/int my_strlen(char *str){ int len = 0; while(*str != '\0') { len++;str++; } return len;}转载 2016-10-23 18:26:38 · 560 阅读 · 0 评论 -
C语言的一些关键字(四)
一、关键字-extern如果一个函数只能被本文件中其它函数所调用,称为内部函数(或静态函数)。定义时在函数类型前加static。static int fac(int x){ ……}extern int fac(int x){ ……}二、关键字-struct在网络协议、通信控制、嵌入式系统的C/C++编程中,我们经常要传转载 2016-11-03 17:43:13 · 309 阅读 · 0 评论 -
Linux环境下的make和makefile详解(三)
一、Makefile的隐含规则 隐含规则能够告诉make使用传统的标准方法完成任务。例如,生成一个目标文件的方法是使用C编译器编译C语言源程序,这个步骤所用到的命令基本都是相同的。使用隐含规则就无须详细指定这些命令,而make能按照文件名的后缀的变化,决定所采用的规则。二、Makefile的示例三、Makefile的变量变量是在Makefile中定义的名转载 2016-10-12 16:10:45 · 391 阅读 · 0 评论 -
Linux环境下的make和makefile详解(二)
一、Makefile的示例objects = main.o mouse.o command.o display.oCC = gccCFLAGS = -Wall -O2 -ggame : $(objects)$(CC) -o edit $(objects)main.o : defs.hmouse.o : defs.h command.hcommand.o : defs转载 2016-10-11 18:39:42 · 319 阅读 · 0 评论 -
vi编辑器的使用进阶(一)
一、设置 vi 和 Vim 配置选项set 命令使用户能够设置内部 vi 和 Vim 变量。变量根据不同的类型以不同方式予以设置:设置为 on 或 off 的变量由 set variable 命令设置,使用 set novariable 命令取消设置。取值的变量由 set variable=value 命令设置。例如,set list 命令设置列表选项,该选转载 2016-10-21 17:28:14 · 545 阅读 · 0 评论 -
Linux环境下的make和Makefile 详解(一)
一、定义一个软件工程通常会包含几十上百个文件,如果每次编译都通过命令行手动编译往往会很麻烦而且效率低下。 在Windows平台上的VC、VB等都有一个工程(Project)的概念。一旦建立了一个工程,这些开发平台会自动地维护其中的各种文件,从而可以很高效地完成编译工作。 幸运的是,在Linux中同样有一个功能强大、使用方便的工程管理工具,这就是make。 二转载 2016-10-10 17:48:59 · 571 阅读 · 0 评论 -
Linux环境下的gdb调试工具详解(一)
一、含义GDB是GNU的调试工具,它可以跟踪被调试的程序,进行设置断点、单步执行等操作。当程序暂停执行时,可以使用命令查看程序中的变量值、CPU的寄存器值、内存的值以及函数调用栈等信息。 被调试的应用程序在编译时最好使用-g参数将调试信息编入目标文件中:gcc -g app.c -o app用以下命令启动对程序app的调试:gdb app如果程序app运行时需要参数,转载 2016-10-14 19:59:34 · 400 阅读 · 0 评论 -
带有表头的单链表
/*****************************************************copyright (C), 2014-2015, Lighting Studio. Co., Ltd. File name:Author:fhb Version:0.1 Date: Description:Funcion List: ******原创 2016-11-05 21:44:25 · 788 阅读 · 0 评论 -
工程管理之makefile与自动创建makefile文件过程
一、Linux Makefile介绍Linux Makefile是用于自动编译和链接的,一个工程有很多文件组成,每一个文件的改变都会导致工程的重新链接,但是不是所有的文件都需要重新编译,Linux Makefile中纪录有文件的信息,在Linux Makefile时会决定在链接的时候需要重新编译哪些文件。Linux Makefile的宗旨就是:让编译器知道要编译一个文件需要依赖其他转载 2016-10-25 18:14:50 · 294 阅读 · 0 评论