自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

转载 七大内部排序算法总结(插入排序、希尔排序、冒泡排序、简单选择排序、快速排序、归并排序、堆排序)

写在前面:                排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列。因此排序掌握各种排序算法非常重要。对下面介绍的各个排序,我们假定所有排序的关键字都是整数、对传入函数的参数默认是已经检查好了的。只是简单的描述各个算法并给出了具体实现代码,并未做其他深究探讨。基础知识:

2017-10-13 10:43:39 339

转载 Linux下安装MySQL数据库

经验贴】安装环境为:Ubuntu12.04,MySQL5.5.28在Linux下安装MySQL有三种方式:第一种以rpm的二进制文件分个安装,第二种是自己编译源码后安装,最后一种是以二进制tar.gz文件来安装。这三种中,由于最后一种是统一的整体文件,个人感觉最简单,故本文将采用此方式来进行安装:首先到mysql的下载中心上下载最新的tar.gz包:

2017-10-11 10:23:36 185

转载 Linux下C语言执行MySQL语句

本文出自   http://blog.csdn.net/shuangde800执行SQL语句的增、删、改、查的主要API函数为:[cpp] view plain copyint mysql_query(MYSQL *connection, const char *query);  函数接收参数连接句柄和

2017-10-11 10:18:44 209

转载 Linux下C语言连接MySQL

本文出自   http://blog.csdn.net/shuangde800首先保证安装:1:安装MySQL:sudo apt-get install mysql-server mysql-client2:安装MySQL开发包:sudo apt-get install libmysqlclient15-dev此时需要用到的头文件会出现在/usr/i

2017-10-11 10:17:35 311

转载 Linux下C语言编程操作MySQl

原文地址:http://www.2cto.com/database/201506/407827.html在实际应用中,我们不可能在命令行登录进数据库进行数据的查询、插入等操作,用户一般是使用一个界面良好的应用程序软件来对数据进行管理。为了方便应用程序的开发,MySQL提供了多种编程语言(C、perl、php等)的编程接口,供开发者使用。 对于C语言来说,MySQL提供了C语言客户机库,

2017-10-11 10:12:03 390

转载 C语言之各种排序法及核心思想(冒泡、鸡尾酒、选择、插入、二分法、希尔、堆、归并、快速)

[cpp] view plain copy#include     void swap(int num[],int a, int b)  {      int tmp;          tmp = num[a];          num[a] = num[b];          num[b] = tmp;  }    v

2017-09-15 19:20:46 489

转载 C语言排序实例(选择、冒泡、插入、折半、快速)

[cpp] view plain copy#include     ///////////////////////选择法排序  //a:为数组首地址  //n:为数组元素个数  void select_sort(int *a, int n)  {      int i, j, k, temp;      for(i = 0; i 

2017-09-15 19:19:10 253

转载 C语言可变参数的使用

概要众所周知,C++支出函数重载,而C语言默认是不支持。但是,C语言可以通过可变参数实现类似函数重载的功能。如 Linux C 的open()函数,这个函数有2个版本。有一个可选的第三个参数时只需要文件可能被创建。第三个参数描述了使用新文件的权限设置。#include #include #include int open(const char *pathname, in

2017-09-15 19:10:34 183

转载 结构体字节对齐

结构体偏移量在定义结构体类型后,则结构体中的成员内存布局就定下了。#include typedef struct Test{ int a; int b; int c;}Test;int main(){ Test t; Test*p = NULL; p = &t; //b相对于结构体Test的偏移量,n1=4

2017-09-14 18:45:41 180

转载 判断两个( float )变量是否相等以及和 0 值比较方法

float 型: 占 4 字节,7 位有效数字double 型:占 8 字节,15~16 位有效数字浮点数的表示是不精确的,float 和 double 都不能保证可以把所有实数都准确的保存在计算机中。测试例子如下:[cpp] view plain copy#include     int main

2017-09-14 18:26:44 3007

转载 浅析为什么char类型的范围是-128~+127

在 C 语言中, signed char 类型的范围为 -128~127,每本教科书上也这么写,但是没有哪一本书上(包括老师)也不会给你为什么是 -128~127,这个问题貌似看起来也很简单容易, 以至于不用去思考为什么,不是有一个整型范围的公式吗:  -2^(n-1)~2^(n-1)-1 (n为整型的内存占用位数),所以 int 类型 32 位那么就是 -(2^31) ~ 2^31-1 即 -2

2017-09-14 18:22:52 283

转载 C 函数

函数的概述C 程序是由函数组成的,我们写的代码都是由主函数 main()开始执行的。函数是 C 程序的基本模块,是用于完成特定任务的程序代码单元。从函数定义的角度看,函数可分为系统函数和用户定义函数两种:(1)系统函数,即库函数:这是由编译系统提供的,用户不必自己定义这些函数,可以直接使用它们,如我们常用的打印函数printf()。(2)用户定义函数:用以解

2017-09-14 18:14:08 299

转载 关于typedef的用法总结

在C还是C++代码中,typedef都使用的很多,在C代码中尤其是多。typedef与#define有些相似,其实是不同的,特别是在一些复杂的用法上,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我就不加修改的引用过来了,加上自己的一个分析。基本定义:typedef为C语言的关键字,作用是为一种数据类型定义一

2017-09-14 11:02:08 174

转载 Linux环境编程

linux环境编程

2017-09-07 15:01:36 316

转载 Linux系统编程——特殊进程之孤儿进程

父进程运行结束,但子进程还在运行(未运行结束)的子进程就称为孤儿进程(Orphan Process)。孤儿进程最终会被 init 进程(进程号为 1 )所收养,并由 init 进程对它们完成状态收集工作。孤儿进程是没有父进程的进程,为避免孤儿进程退出时无法释放所占用的资源而变为僵尸进程(什么是僵尸进程,请看《特殊进程之僵尸进程》),进程号为 1 的 init 进程将会接

2017-09-07 13:37:03 128

转载 Linux系统编程——特殊进程之僵尸进程

僵尸进程(Zombie Process)进程已运行结束,但进程的占用的资源未被回收,这样的进程称为僵尸进程。在每个进程退出的时候,内核释放该进程所有的资源、包括打开的文件、占用的内存等。 但是仍然为其保留一定的信息,这些信息主要主要指进程控制块的信息(包括进程号、退出状态、运行时间等)。直到父进程通过 wait() 或 waitpid() 来获取其状态并释放(具体用

2017-09-07 11:33:39 133

转载 Linux系统编程——进程的控制:结束进程、等待进程结束

结束进程首先,我们回顾一下 C 语言中 continue, break, return 的作用:continue: 结束本次循环break: 跳出整个循环,或跳出 switch() 语句return: 结束当前函数而我们可以通过 exit() 或 _exit() 来结束当前进程。所需头文件:#include

2017-09-07 11:27:44 196

转载 Linux系统编程——vfork() 函数详解

所需头文件:#include #include pid_t vfork(void);功能:vfork() 函数和 fork() 函数(fork()如何使用,请点此链接)一样都是在已有的进程中创建一个新的进程,但它们创建的子进程是有区别的。参数:无返回值:成功:子进程中返回 0,父进程

2017-09-07 11:26:45 181

转载 Linux系统编程—— fork() 函数详解

需要的头文件:#include #include pid_t fork(void);功能:用于从一个已存在的进程中创建一个新进程,新进程称为子进程,原进程称为父进程。参数:无返回值:成功:子进程中返回 0,父进程中返回子进程 ID。pid_t,为无符号整型。失败:返回 -1。失败

2017-09-07 11:20:18 222

转载 Linux系统编程——Linux 可执行文件结构与进程结构

Linux可执行文件结构在 Linux 下,程序是一个普通的可执行文件,以下列出一个二进制可执行文件的基本情况:可以看出,此可执行文件在存储时(没有调入到内存前)分为代码区(text)、数据区(data)和未初始化数据区(bss)3 个部分。各段基本内容说明如下:代码区:存放 CPU 执行的机器指令。通常代码区是可共享的(即另

2017-09-07 11:19:30 195

转载 Linux系统编程——进程的介绍

进程我们平时写的 C 语言代码,通过编译器编译,最终它会成为一个可执行程序,当这个可执行程序运行起来后(没有结束之前),它就成为了一个进程。程序是存放在存储介质上的一个可执行文件,而进程是程序执行的过程。进程的状态是变化的,其包括进程的创建、调度和消亡。程序是静态的,进程是动态的。在 Linux 系统中,操作系统是通过进程去完成一个一

2017-09-07 11:17:54 116

转载 Linux系统编程——文件描述符的复制:dup()和dup2()

dup() 和 dup2() 是两个非常有用的系统调用,都是用来复制一个文件的描述符,使新的文件描述符也标识旧的文件描述符所标识的文件。这个过程类似于现实生活中的配钥匙,钥匙相当于文件描述符,锁相当于文件,本来一个钥匙开一把锁,相当于,一个文件描述符对应一个文件,现在,我们去配钥匙,通过旧的钥匙复制了一把新的钥匙,这样的话,旧的钥匙和新的钥匙都能开启这把锁。对比于 dup(),

2017-09-07 11:17:03 282

转载 Linux系统编程——系统调用之 I/O 操作(文件操作)

文件描述符在 Linux 的世界里,一切设备皆文件。我们可以系统调用中 I/O 的函数(I:input,输入;O:output,输出),对文件进行相应的操作( open()、close()、write() 、read() 等)。打开现存文件或新建文件时,系统(内核)会返回一个文件描述符,文件描述符用来指定已打开的文件。这个文件描述符相当于这个已打开文件的标号,文件描述符

2017-09-07 11:14:14 227

转载 Linux系统编程——Linux系统调用

系统调用概述系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务,比如用户可以通过文件系统相关的调用请求系统打开文件、关闭文件或读写文件,可以通过时钟相关的系统调用获得系统时间或设置定时器等。从逻辑上来说,系统调用可被看成是一个内核与用户空间程序交互的接口——它好比一个中间人,把用户进程的请求传达给

2017-09-07 11:07:43 143

转载 进程运行状态

进程是一个动态的实体,所以他是有生命的。从创建到消亡,是一个进程的整个生命周期。在这个周期中,进程可能会经历各种不同的状态。一般来说,所有进程都要经历以下的3个状态:就绪态。指进程已经获得所有所需的其他资源,正在申请处理处理器资源,准备开始执行。这种情况下,称进程处于就绪态。阻塞态。指进程因为需要等待所需资源而放弃处理器,或者进程本不拥有处理器,且其他资源也没有满足,从而即使得到处理器也不

2017-09-07 10:12:19 1377

转载 进程和线程的区别和联系

一、进程进程:指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。    注意,进程一般有三个状态:就绪状态、执行状态和等待状态【或称阻塞状态】;进程只能由父进程建立,系统中所有的进程形成一种进程树的层次体系;挂起命令可由进程自己和其他进程发出,但是解除挂起命令只能由其他进程发出。进程控制块(PCB):P

2017-09-07 10:08:18 184

转载 进程和线程

1 fork基本概念一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。    一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值

2017-09-06 17:04:45 211

转载 操作系统面试题

1、进程和线程的区别?解析:(1)进程是资源的分配和调度的一个独立单元,而线程是CPU调度的基本单元          (2)同一个进程中可以包括多个线程,并且线程共享整个进程的资源(寄存器、堆栈、上下文),一个进行至少包括一个线程。          (3)进程的创建调用fork或者vfork,而线程的创建调用pthread_create,进程结束后它拥有的所有线程都将销

2017-09-06 16:53:58 191

转载 死锁小结

资源的分类        计算机系统中的资源分为两类:可抢占的和不可抢占的。        可抢占资源可以从拥有它的进程中抢占而不会产生任何副作用,例如存储器就是一类可抢占的资源;不可抢占资源是指在不引起相关的计算失败的情况下,无法把它从占有它的进程处抢占过来,例如一个进程已开始刻盘,突然将CD刻录机分配给另一个进程,那么将划坏CD盘,在任何时刻CD刻录机都是不可抢占的。       

2017-09-06 16:48:24 217

转载 笔试面试高频题(C/C++)

有那么一些零碎的小知识点,偶尔很迷惑,偶尔被忽略,偶然却发现它们很重要,这段时间正好在温习这些,就整理在这里,一起学习一起提高!后面还会继续补充。——前言1.面向对象的特性  封装、继承、多态。  封装:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。(优点:可以隐藏实现细节,使得代码模块化)  继承:

2017-09-05 14:58:33 319

转载 笔试面试高频题(计算机网络)

有那么一些零碎的小知识点,偶尔很迷惑,偶尔被忽略,偶然却发现它们很重要,也是各大笔试和面试高频出现考点。这段时间正好在温习这些,就整理在这里,一起学习一起提高!后面还会继续补充。——前言1.TCP的三次握手四次挥手  第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server

2017-09-05 14:56:58 356

转载 笔试面试高频题(操作系统)

有那么一些零碎的小知识点,偶尔很迷惑,偶尔被忽略,偶然却发现它们很重要,也是各大笔试和面试高频出现考点。这段时间正好在温习这些,就整理在这里,一起学习一起提高!后面还会继续补充。——前言1.进程和线程  线程是指进程内的一个执行单元,也是进程内的可调度实体.  与进程的区别:  (1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间

2017-09-05 14:55:34 280

转载 那些不能遗忘的知识点回顾----操作系统系列

有那么一些零碎的小知识点,偶尔很迷惑,偶尔被忽略,偶然却发现它们很重要,也是各大笔试和面试高频出现考点。这段时间正好在温习这些,就整理在这里,一起学习一起提高!后面还会继续补充。——前言1.进程和线程  线程是指进程内的一个执行单元,也是进程内的可调度实体.  与进程的区别:  (1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间

2017-09-05 14:54:35 176

转载 malloc/free与new/delete的区别

相同点:malloc/free与new/delete都可用于申请动态内存和释放内存不同点: 1、操作对象有所不同。 malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用malloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象消亡之前要自动执行析构函数。由于malloc/fr

2017-09-05 11:40:14 288

转载 C++ 文件和流

在看C++编程思想中,每个练习基本都是使用ofstream,ifstream,fstream,以前粗略知道其用法和含义,在看了几位大牛的博文后,进行整理和总结:这里主要是讨论fstream的内容:[java] view plain copy print?#include   ofstream         //文

2017-08-31 09:12:18 158

转载 C++ 函数重载

在实际开发中,有时候我们需要实现几个功能类似的函数,只是有些细节不同。例如希望交换两个变量的值,这两个变量有多种类型,可以是 int、float、char、bool 等,我们需要通过参数把变量的地址传入函数内部。在C语言中,程序员往往需要分别设计出三个不同名的函数,其函数原型与下面类似:void swap1(int *a, int *b); //交换 int 变量的值void

2017-08-30 11:12:43 179

转载 C++ 类的大小 struct/class内存对齐问题

第一:空类的大小class CBase{};运行coutsizeof(CBase)=1;为什么空的什么都没有是1呢?先了解一个概念:类的实例化,所谓类的实例化就是在内存中分配一块地址,每个实例在内存中都有独一无二的地址。同样空类也会被实例化(别拿豆包不当干粮,空类也是类啊),所以编译器会给空类隐含的添加一个字节,这样空类实例化之后就有了独一无二的地址

2017-08-30 08:53:22 1967

转载 Linux下的lds链接脚本基础

一、 概论每一个链接过程都由链接脚本(linker script, 一般以lds作为文件的后缀名)控制. 链接脚本主要用于规定如何把输入文件内的section放入输出文件内, 并控制输出文件内各部分在程序地址空间内的布局. 但你也可以用连接命令做一些其他事情.连接器有个默认的内置连接脚本, 可用ld –verbose查看. 连接选项-r和-N可以影响默认的连接脚本(如何影响?).-

2017-08-24 11:39:13 182

转载 Makefile教程

该篇文章为转载,是对原作者系列文章的总汇加上标注。支持原创,请移步陈浩大神博客:http://blog.csdn.net/haoel/article/details/2886makefile很重要      什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和profes

2017-08-23 16:59:27 196

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除