- 博客(45)
- 资源 (1)
- 收藏
- 关注
转载 linux c语言隐藏密码
#include#include#include#include#includeint getch(){ int c=0; struct termios org_opts, new_opts; int res=0; //----- store old settings ----------- res=tcgetattr(ST
2017-02-09 20:07:34 1469
原创 Linux C密码账户注册
#include #include #include #include char account[1024];char pawd[1024];int my_strcmp(char *src,char *sub,int len){ int i; int len_src; len_src = strlen(src)
2017-01-23 11:03:02 481
转载 TCP UDP
TCP与UDP基本区别 1.基于连接与无连接 2.TCP要求系统资源较多,UDP较少; 3.UDP程序结构较简单 4.流模式(TCP)与数据报模式(UDP); 5.TCP保证数据正确性,UDP可能丢包 6.TCP保证数据顺序,UDP不保证 UDP应用场景: 1.面向数据报方式 2.网络数据大多为短消息 3.拥有大量Clie
2017-01-20 10:05:52 455
转载 网络知识
每个程序员应该知道的计算机网络知识2016-09-06 华章计算机前言作为一名程序员, 不可能不与网络打交道. 现在我们的手机, 电脑, 不夸张地说, 离开了网络就是一块’废铁’, 它们的作用将大打折扣.. 本文的作用呢, 主要是针对不是非网络专业开发的人员准备的, 以’最短的时间, 了解计网最多的知识’为前提起笔.目录概述物
2017-01-20 09:41:31 378
转载 嵌入式数据结构
Berkeley DB概述Berkeley DB是由美国Sleepycat Software公司开发的一套开放源码的嵌入式数据库的程序库(database library),它为应用程序提供可伸缩的、高性能的、有事务保护功能的数据管理服务。Berkeley DB为数据的存取和管理提供了一组简洁的函数调用API接口。 它是一个经典的C-library模式的toolkit
2017-01-18 21:27:23 394
转载 系统调用和库函数的区别
系统调用:是操作系统为用户态运行的进程和硬件设备(如CPU、磁盘、打印机等)进行交互提供的一组接口,即就是设置在应用程序和硬件设备之间的一个接口层。可以说是操作系统留给用户程序的一个接口。再来说一下,linux内核是单内核,结构紧凑,执行速度快,各个模块之间是直接调用的关系。放眼望整个linux系统,从上到下依次是用户进程->linux内核->硬件。其中系统调用接口是位于Linux内核中的,如果再
2017-01-17 18:57:28 220
转载 栈实现计算器
栈实现计算器1.自左向右扫描表达式,凡是遇到操作数一律进操作数栈。2.当遇到运算符时,如果他的优先级比运算符栈栈顶元素的优先级高就栈。反之,取出栈顶运算符和操作数栈顶的两个连续操作数运算,并将结果存入操作数栈,然后继续比较该运算符与栈顶的运算符的优先级。3.左括号一律进运算符栈,右括号一律不进运算符栈,取出栈顶运算符和操作数栈顶的两个连续操作数运算,并将结果存入操作数栈,直到取出左括号
2017-01-15 16:18:44 444
转载 shell test命令详解
基本格式:test expressionexpression为test命令构造的表达式。这里expression是test命令可以理解的任何有效表达式,该简化格式将是读者可能会踫见的最常用格式返回值:test命令或者返回0(真) 或者返回1(假).test可理解的表达式类型分为四类: 表达式判断 字符串比较 数字比较 文件比较1)
2016-12-24 18:59:57 415
原创 链表
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一
2016-12-16 15:49:55 234
原创 函数指针
函数名:指针常量,函数的入口地址函数的调用:通过函数名找到函数入口;给形参分配空间;传参执行函数体里的语句;返回,释放空间;当只使用不修改实参变量对应空间的值,传实参变量名;当既使用又修改变量对应空间的值,传是参变量对应空间的地址;传入参数:一个变量有值,传入函数用;传出参数:一个变量没有值,从函数中带出的值;
2016-12-11 11:47:45 170
转载 exit与_exit的区别
注:exit()就是退出,传入的参数是程序退出时的状态码,0表示正常退出,其他表示非正常退出,一般都用-1或者1,标准C里有EXIT_SUCCESS和EXIT_FAILURE两个宏,用exit(EXIT_SUCCESS);可读性比较好一点。作为系统调用而言,_exit和exit是一对孪生兄弟,它们究竟相似到什么程度,我们可以从Linux的源码中找到答案:#define __NR__
2016-12-11 11:40:33 293
原创 数组指针
一维数组名是指针常量,保存的是数组首元素的地址[] = *() a[i] = *(a + i)&a:代表的是数组的地址,对数组名取地址等于数组的地址*(&a)=a 对一维数组的地址取值等于一维数组的收元素的地址二维数组 a[i][j]*(*(a + i) + j ):a + i: 第i + 1个一维数组的地址;*(a + i ): 第i + 1个一维
2016-12-11 11:26:36 206
转载 echo用法
变量的取用就如上面的范例,利用 ehco 就能够读出,叧是需要在发量名称前面加上 $ , 或者是以${变量} 的方式用都可以!当然啦,那个 echo 的功能可是很多的, 我们这里单纯是拿 echo 来读出发量的内容而已,更多癿的echo 使用,请自行给他 man echo 吧! ^_^例题:请在屏幕上面显示出您的环境发量 HOME 不 MAIL:答:echo $HO
2016-12-11 11:03:45 577
转载 回调函数的作用
一直不太理解回调函数的作用,下面是找到的一些关于回调函数的作用的解答。1.回调函数是一个很有用,也很重要的概念。当发生某种事件时,系统或其他函数将会自动调用你定义的一段函数。2.回调函数就相当于一个中断处理函数,由系统在符合你设定的条件时自动调用。为此,你需要做三件事:1,声明;2,定义;3,设置触发条件,就是在你的函数中把你的回调函数名称转化为地址作为一个参数,以便于系统
2016-12-07 17:55:31 225
原创 realloc注意事项
1. realloc失败的时候,返回NULL2. realloc失败的时候,原来的内存不改变,不会释放也不会移动3. 假如原来的内存后面还有足够多剩余内存的话,realloc的内存=原来的内存+剩余内存,realloc还是返回原来内存的地址; 假如原来的内存后面没有足够多剩余内存的话,realloc将申请新的内存,然后把原来的内存数据拷贝到新内存里,原来的内存将被free掉,realloc
2016-12-05 14:46:07 760
转载 malloc ralloc calloc使用与注意事项
三个函数都在文件中,其中void * 是万能指针,但是不能取值,一般需要什么数据类型,就用什么数据类型;若是全用void *,则可能引起越界或不完整。如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当分配的内存不再使用时,需要使用free()函数将其释放掉。malloc():功能是分配长度为size字节的字节块。malloc不初始化内存空间,也就是依然保留着这段内存里的数据
2016-12-03 12:09:47 448
转载 malloc的实现原理
malloc()是C语言中动态存储管理 的一组标准库函数之一。其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值 是一个指向所分配的连续存储域的起始地址的指针。 动态内存分配 就 是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不像数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据 程序的需要即时分配,且
2016-12-03 11:22:34 266
原创 野指针
野指针:随机指向一块内存的指针容易造成的错误:内存泄露 ,不一定每次都会产生段错误,可能会是获取的地址是已经申请过的地址避免野指针:养成良好的代码习惯(置为空目的:提醒不该做操作,暂时是野指针)良好的代码习惯:1.指针没有指向时,置为NULL; 2.往指针指向的空间赋值时,一定要给这个指针分配空间 int *p
2016-12-03 11:20:23 269
原创 野指针
成因野指针主要是因为这些疏忽而出现的:指针变量未初始任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。指针释放后之后未置空有时指针在free或delete后未赋值 NULL,便会使人以为是合法的。别看free和delete的名字(尤其是delete),它们只
2016-11-30 16:37:59 309
转载 scanf获取句子
scanf的结束标志是空格和回车键,而gets的结束标志为回车键,输入字符串时,一般采用gets因此有下面两种方法可以在使用scanf时完整输入字符串1)利用strcat()函数来实现带空格字符串的输入,可以用字符串追加函数strcat()来连接每个单词。 Strcat()一般格式:char*strcat(char*dest,const char*src); 函数将字符串src连
2016-11-28 17:50:41 294
转载 printf函数详解
首先直接描述printf函数中的“格式描述串”,它是由一系列的“格式转换说明符号”组成,格式转换说明符号的描述形式如下:%[+][-] 0 m[n][输出精度](1)形式字母:制定输出格式,如表d:十进制整型数i:十进制整型数x:十六进制整型数o:八进制整形数u:无符号十进制整形数c:单个字符s:字符串e:指数形式的浮
2016-11-27 16:00:36 346
原创 数据类型 变量与常量
变量特点; 1.变量的数据类型: 变量占用内存空间的大小 2.变量的作用域: (生命周期)变量的有效性范围 3.变量的存储类型: 变量在内存中的存储方式内存和硬盘的区别:内存:数据调定会丢失,放的是运行数据,动态执行 硬盘:保存静态数
2016-11-27 15:56:29 392
原创 c语言程序
1.百钱百鸡问题#include int main(){int cock;int hen;int chicken;for(cock = 0; cock {for(hen = 0; hen {for(chicken = 0; chicken {if(cock + hen + chicken == 100 && cock * 5 + he
2016-11-26 14:26:43 296
原创 c语言的四个标准
K&R C1978年,丹尼斯•里奇(Dennis Ritchie)和布莱恩•柯林汉(Brian Kernighan)合作出版了《C程序设计语言》的第一版。书中介绍的C语言标准也被C语言程式设计师称作“K&R C”,第二版的书中也包含了一些ANSI C的标准。K&R C主要介绍了以下特色: 结构(struct)类型长整数(long int)类型无符号整数(unsigned int)类
2016-11-26 14:24:32 658
原创 数据类型 字节
字长:bit 字节:8bit 字:(32位处理器)=4个字节=32bit 半字:两个字节= 16bit运算符sizeof :不是函数,用于测量变量,数据类型的字节长度使用方法:sizeof + 空格 + 变量名 或者sizeof(变量名),而测量数据时只能用后者。
2016-11-26 14:10:29 279
原创 复杂的c语言变量声明
介绍 曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的 C/C++声明:我们将从每天都能碰到的较简单的声明入手,然后逐步加入const修饰符和typedef,还有函数指针,最后介绍一个能够让你准确地 理解任何C/C++声明的“右左法则”。需要强调一下的是,复杂的C/
2016-11-21 23:09:58 300
原创 语言特点及应用领域
c++:特点:封装性是基础,继承性是关键,多态性是补充,并且多态性存在于继承的环境中。 封装性 C++语言中支持数据封装,类是支持数据封装的工具,对象是数据封装的实现。在封装中,还提供一种对数据访问的控制机制,使得一些数据被隐藏在封装体内,因此具有隐藏性。封装体与外界进行信息交换是通过操作接口进行的。这种访问控制机制体现在类的成员可以有公有成员(public
2016-11-20 11:15:11 3090
原创 解释型语言与编译型语言
相对于编译型语言存在的,源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。比如Python/JavaScript / Perl /Shell等都是解释型语言。解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执 行一次都要翻译一次。因此效率比较低。比如Basic语言,专门有一个解释器能够直接执行Basic程 序,每个语句都是执行的时候才翻译。(在运
2016-11-20 11:08:19 280
转载 理解复杂的c语言 c++声明
介绍 曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的 C/C++声明:我们将从每天都能碰到的较简单的声明入手,然后逐步加入const修饰符和typedef,还有函数指针,最后介绍一个能够让你准确地 理解任何C/C++声明的“右左法则”。需要强调一下的是,复杂的C/C
2016-11-20 11:00:11 324
原创 c语言概述
c++ 应用于服务器后台,比如VRc#& .net windows桌面应用程序php 做网站python 、shell 脚本语言 用于大数据处理 软件测试os ios开发语言嵌入式为什么选择c语言所有操作系统内核都是由c语言来实现的c语言有如下的特点:出色的移植性 访问硬件 运行效率高移植性:一个平台到另一个平台,修改代码越少移植性越好,一个软件可
2016-11-19 23:38:47 242
原创 vim编辑器
:/字符串 查找字符串:/字符串 查找字符串:s/字符串1/字符串2 将字符串1替换成字符串2:s/字符串1/字符串2/g 全局替换:s/字符串1/字符串2/gc 询问是否替换:num1,num2 s/字符串1/字符串2/g 将n1至n2行的字符串1替换成字符串2:%s/字符串1/字符串2 全文替换:!+命令 编辑的同时执行命令:
2016-11-18 22:26:33 232
转载 makefile
1 Makefile 介绍 make命令执行时,需要一个 Makefile 文件,以告诉make命令需要怎么样的去编译和链接程序。 首先,我们用一个示例来说明Makefile的书写规则。以便给大家一个感兴认识。这个示例来源于GNU的make使用手册,在这个示例中,我们的工程有8个C文件,和3个头文件,我们要写一个Makefile来告诉make命令如何编译和链接这几个
2016-11-16 17:27:16 366
原创 linux开发工具 gdb调试器
GDB功能:启动被调试程序;让被调试程序在指定的位置停住;当被调试程序停住时,可以检查程序的状态———变量值。调试:gcc -g test.c -o test gdb test (可执行文件) run 运行程序 quit 退出gdb list 显示代码,.c 文件
2016-11-13 10:13:55 359
原创 linux开发工具 gcc编译器
GNU CC(简称gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C C++和Object C 等语言编译的程序,gcc不仅功能强大,而且能编译多种语言,而且gcc又是一个监察平台编译器,它能够在当前CPU平台上为多种不同的体系结构的硬件平台开发软件。gcc的一些指令编译器警告gcc -w hello.c -o hello 关闭警告gcc -Wall h
2016-11-13 09:16:24 249
原创 gcc编译器
gcc编译器的四个过程: 预处理:头文件展开,对源程序中的伪指令和特殊符号进行处理(宏定义指令,条件编译指令,头文件包含指令)(.i文件) gcc -E hello.c -o hello.i 编译:将源程序转化为计算机可以执行的二进制代码(.s文件) gcc -S hello.i -o hell
2016-11-12 10:05:13 253
原创 数组字符串,企业笔试题
1.输入整数,输出字符串#include #include #include #define MAX_SIZE 10int main(){ int i; int j; int len; int num = 0; char str[MAX_SIZE]; printf("pl
2016-11-10 17:55:22 242
转载 linux vim编辑器配置文件
"""""""""""""""""""" 显示相关 """"""""""""""""""""set shortmess=atI " 启动的时候不显示那个援助乌干达儿童的提示 "winpos 5 5 " 设定窗口位置 "set lines=40 columns=155 " 设定窗口大小 "set nu " 显示行号 set go= " 不要图形按钮 "color
2016-11-08 09:26:47 475
转载 linux 根目录下各文件夹的作用
/bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示 /lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件 /sbin 系统
2016-11-07 09:00:53 287
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人