自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++类 & 对象

C++ 类 & 对象C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法称为类的成员。函数在一个类被称为类的成员。C++ 类定义定义一个类,本质上是定义一个数据类型的蓝图。这实际上并没有定义任何数据,但它

2016-12-31 21:55:39 370

原创 C 互斥锁

在信号量最后的部分说,当count=1的时候可以用信号量实现互斥。在早期的Linux版本中就是当count=1来实现mutex的。 内核重新定义了一个新的数据结构 struct mutex, 将其称为互斥锁或者互斥体。同时对信号量的DOWN和UP操作针对struct mutex做了修改。互斥锁的定义和初始化因为struct mutex的定义中有一些调试相关的成员,在这里

2016-12-30 22:06:25 665

原创 C 内存错误

发生内存错误是件非常麻烦的事情,编译器不能自动发觉这些错误,通常在程序运行时才会出现,而这些错误大多没有明显的症状,时隐时现,增加了改错的难度,有时用户怒气冲冲地把你找来,程序却没有发生任何问题,你一走了问题又开始做乱。常见的内存错误及对策有以下几种:1)内存未分配成功,就使用了它。一般程序员都不会意识到内存会分配不成功,而直接使用了该指针;常用的解决方法:在使用内存之前检查指针是否为

2016-12-29 21:09:12 215

原创 C 位运算应用

位操作运算符的应用& 1.对特定位清0 mask中的特定位为0,其余位为1。s = s & mask;2.取某数中的指定位 mask特定位置1,其余位0。| 常用来将源操作数某些位置1,其余位不变 mask特定位置为1,其余位为0。^ 1.使特定位取反 mask特定位置1,其余位为0; 2.不引用第三方变量,交换值a = a ^

2016-12-28 20:55:00 278

原创 C终止进程的工具kill,killall,pkill和xkill

终止一个进程或终止一个正在运行的程序,一般是通过 kill 、killall、pkill、xkill 等进行。比如一个程序已经死掉,但又不能退出,这时就应该考虑应用这些工具。另外应用的场合就是在服务器管理中,在不涉及数据库服务器程序的父进程的停止运行,也可以用这些工具来终止。为什么数据库服务器的父进程不能用这些工具杀死呢?原因很简单,这些工具在强行终止数据库服务器时,会让数据库产生更多

2016-12-27 21:58:31 699

原创 C wait()和waitpid()

当前进程一旦调用了wait函数,就立即阻塞当前进程,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait 就会收集这个子进程的信息, 并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一个出现为止。wait(等待子进程中断或结束)相关函数 waitpid,fork需要头文件#include

2016-12-25 21:42:59 837

原创 C 带头节点单链表逆序

#include#includetypedef struct node{int num;struct node *next;}Node;typedef Node * Link;void revers_list(Link  head){Link p1 = NULL;Link p2 = NULL;Link p3 = NULL;p3

2016-12-23 21:35:20 380

原创 C strcpy,sprintf,memcpy的区别

strcpy 函数操作的对象是字符串,完成 从 源字符串 到 目的字符串 的 拷贝 功能。sprintf 函数操作的对象 不限于字符串:虽然目的对象是字符串,但是源对象可以是字符串、也可以是任意基本类型的数据。这个函数主要用来实现 (字符串或基本数据类型)向 字符串 的转换 功能。如果源对象是字符串,并且指定 %s 格式符,也可实现字符串拷贝功能。   memcpy 函数顾名思

2016-12-22 21:24:01 269

原创 C 数组与链表的区别

数组与链表的区别  1.基于空间的考虑         数组的存储空间是静态,连续分布的,估计过大造成空间浪费,估计太小又将使空间溢出机会增多。 而链表的存储空间是动态分布的,只要内存空间尚有空闲,就不会产生溢出;  链表中每个节点除了数据域外,还有指针域,存储密度小于1 (数组为1), 存储空间利用率就越高。    2. 基于时间的考虑  数组中任意节点都可以在O(1

2016-12-21 21:25:20 462

原创 C 树 数据结构

一、什么是树?        在前几篇的博文中主要讲述的是链式存储这种数据结构,它们的用途非常广泛,但是在实际的应用中,还存在着另一种非常重要的数据结构,它就是树。树的结构示意图如下所示:        上图就是一种数据结构----树,之所以在每个框中都留出空白,主要原因是这种结构如果根据上下文是能够传达一些重要的结构信息,比如我们可以作如下思考:       

2016-12-20 20:17:54 2287

原创 C 小练习

题目:n从1开始,每个操作可以选择对n加1或者对n加倍。若想获得整数2014,最少需要多少个操作?解法:2013的二进制是 11111011110(9个1,2个0),则可以将原问题转换为:将此数按原来题目的要求右移,直到值为1,怎么做呢?如果末尾是1,则需要两次操作,先减去1然后右移一位,如果是0。则直接右移。所以,总次数为2*8(1)+2(0)共18个操作;

2016-12-19 21:08:42 273

原创 C exit()和_exit()的区别

进程就好比人一样有其生命,我们通过fork()函数来创建一个进程,那么我们又是如何来中止进程呢。1.Linux中的进程退出进程退出表示进程即将结束。在Linux中进程退出分为了正常退出和异常退出两种。(1)正常退出a. 在main()函数中执行return;b.调用exit()函数;c.调用_exit()函数。(2)异常退出a.调用a

2016-12-18 21:52:27 311

原创 C strlen 和 sizeof的区别

strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。   char aa[10];cout  char aa[10]={'\0'}; cout  char aa[10]="jun"; cout  而sizeof()返回的是变量声明

2016-12-17 17:32:17 160

原创 C 进程死锁

所谓死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。虽然进程在运行过程中,可能发生死锁,但死锁的发生也

2016-12-16 22:32:44 640

原创 C 堆和栈的区别

一、堆栈空间分配区别:1、栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈;2、堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。二、堆栈缓存方式区别:1、栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放;2、堆是存放在二级缓存中,生命周

2016-12-15 21:10:06 144

原创 TCP协议与UDP协议的异同

TCP(传输控制协议):1)提供IP环境下的数据可靠传输(一台计算机发出的字节流会无差错的发往网络上的其他计算机,而且计算机A接收数据包的时候,也会向计算机B回发数据包,这也会产生部分通信量),有效流控,全双工操作(数据在两个方向上能同时传递),多路复用服务,是面向连接,端到端的传输;2)面向连接:正式通信前必须要与对方建立连接。事先为所发送的数据开辟出连接好的通道,然后再进行数据

2016-12-14 21:29:39 217

原创 C 静态库与动态库的区别

静态链接文件    目前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”)的导入库(Import Libary,以下简称“导入库”)。静态库是一个或者多个obj文件的打包,所以有人干脆把从obj文件生成lib的过程称为Archive,即合并到一起。比如你链接一个静态库,如果其中有错,它会准确的

2016-12-13 21:46:35 505

原创 C n钱百鸡问题

题目:用小于等于n元去买100只鸡,大鸡5元/只,小鸡3元/只,还有一种1/3元/只得小鸡,分别记为下,x,y,z只,编程求解x,y,z所有可能解#include int main(){    int x=0,y=0,z=0;    int n;    printf("请输入多少钱去买100只鸡:");    scanf("%d",&n);    for

2016-12-12 21:34:52 974

原创 C fork()&&fork()||fork()

一道关于fork创建进程个数的题目:#includeint main(){  fork();fork()&&fork()||fork();fork();return 0;}问除了第一个父进程,这个程序到底创建了多少进程?这道题主要考了两个知识点,一是逻辑运算符运行的特点;二是对fork的理解。如果有一个这样的表达式:cond1 && cond2 ||

2016-12-11 21:30:18 2417

原创 C 线程与进程的区别与联系

线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间;(2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源(3)线程是处理器调度的基本单位,但进程不是.4)二者均可并发执行.进程和线程都是由操作系统所体会的程序运行的基本单元

2016-12-10 21:37:14 387

原创 C 字符串操作练习

对于一个字符串,和字符串中的某一个位置,设计一个算法,将包括i在内的的左侧部分移动到右边,右边部分移动到左边。#include#include void change(char * a,char *b,int m,int n){int i = 0;n++;while(a[i] != '\0'){b[i] = a[n+i];i++;

2016-12-09 21:35:20 458

原创 C udp实现c/s

服务器:/*****************************************************copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd. File name:Author:fhb    Version:0.1    Date: Description:Funcion List: 

2016-12-08 22:11:31 547

原创 C 线程实现并发服务器

利用多线程实现服务器并发服务器程序:#include #include #include #include #include #include #include #include #define portnumber 3333void * read_msg(void *arg){    int fd = *((int *)arg)

2016-12-07 20:13:55 567

原创 C server多路复用

#include #include #include #include #include #include #include #include #include#include#include/* 宏定义端口号 */#define portnumber 8000#define MAX_LINE 80/*处理函数

2016-12-06 21:30:25 164

原创 C 多线程题目

题目:有四个线程1、2、3、4。线程1的功能就是输出1,线程2的功能就是输出2,以此类推.........现在有四个文件ABCD。初始都为空。现要让四个文件呈如下格式:A:1 2 3 4 1 2....B:2 3 4 1 2 3....C:3 4 1 2 3 4....D:4 1 2 3 4 1....请设计程序。程序:/****************

2016-12-05 21:30:43 338

原创 C TCP协议的网络编程

TCP_server.c:#include #include #include #include #include #include int main(){int listenfd,connfd;int n;int i;struct sockaddr_in servaddr,cliaddr;socklen_t clilen;

2016-12-04 21:29:14 197

原创 C多线程练习题

题目:子线程循环 3 次,接着主线程循环 6 次,接着又回到子线程循环 3 次,接着再回到主线程又循环6 次,如此循环50次,试写出代码。程序:#include   #include   #include     pthread_mutex_t mutex;  pthread_cond_t cond;    int main_flog = 0; 

2016-12-03 21:00:35 704

转载 C 多线程 售票系统

#include #include #include #include int ticket = 10;void *sell_ticket1(void){ while(1) { if(ticket > 0) { sleep(1); printf("sell ticket--> chool

2016-12-02 20:44:06 1574

原创 C计算最大回文字串的长度

题目:输入一个字符串和长度,求最大回文字串的长度分析:Manacher算法在原串中插入特殊字符(串中没有的字符),就能把偶数长的串变成奇数然后求一个序列p, p[i]为以i为中心,最长的回文串左端到i距离。在计算p[i]时,假设之前求得的串的右端最右的一个的中心为id,它的右端为mx,那么从i向左长为min(p[id * 2 - i], mx - i) 的一段一定是等于

2016-12-01 21:35:14 351

空空如也

空空如也

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

TA关注的人

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