![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
Dark_gezi
这个作者很懒,什么都没留下…
展开
-
银行家算法——C语言
#define M 50#include "stdio.h"int max[M][M], allocation[M][M], need[M][M], available[M]; /*定义全局变量 */int i, j, n, m, r, t;void main(){ void check(); void print(); int p, q;原创 2017-03-01 09:38:56 · 3786 阅读 · 0 评论 -
epoll详解
什么是epoll epoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。原创 2017-03-01 09:42:11 · 319 阅读 · 0 评论 -
printf在终端输出时改变颜色
在调试程序时,有时候要输出大量数据,如果让printf/fprintf改变输出数据的颜色,那观察数据就方便多了。终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关。转义序列是以 ESC 开头,可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27, = 用八进制表示的 33)。\033[显示方式;前景色;背景色m显示方式:0(默认值)、1(高原创 2017-03-01 09:43:23 · 446 阅读 · 0 评论 -
Makefile 手册,方便查询
英文的手册:http://www.gnu.org/software/make/manual/make.html#Introduction下边转一篇makefile文章,很好,方便查阅。 跟我一起写 Makefile陈皓 (CSDN)概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好原创 2017-03-01 09:43:36 · 527 阅读 · 0 评论 -
list_entry()宏
list_entry()宏#define list_entry(ptr, type, member) \ ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member))) ptr是指向list_head类型链表的指针,type为一个结构,而member为结构type中的一个域,类型为list_head,这个宏返原创 2017-03-01 09:43:39 · 357 阅读 · 0 评论 -
freeswitch mod_callcenter参数解析
最近一直用freeswitch做二次开发,用到了mod_callcenter模块,里面的一些设置进行理解,做个记录,有错的地方指出来! 点击(此处)折叠或打开 队列(queue)的属性: 1、strategy:振铃策略原创 2017-03-01 09:44:07 · 2741 阅读 · 0 评论 -
一个C语言位运算的有趣问题
1、问题如下图2、代码3、我的代码分析作者的思路是16种结果,每一种结果计算一次分数差1、0-15 正好二进制 0000 - 11110001 0010 0011 .... 1110 1111 表示16种结果(这里可以单纯理解为甲的结果,1胜利,0失败)2、for 4次循环,代表4局比赛, 0001 代表甲第1局胜利 0010 代表甲第2原创 2017-09-15 18:28:42 · 479 阅读 · 0 评论 -
永无bug
点击(此处)折叠或打开 #if 0// _ooOoo_ // o8888888o // 88" . "88 // (| -_-原创 2017-03-01 09:42:57 · 532 阅读 · 0 评论 -
/*用C语言获得CPU的占用率*/
/************************/ /*用C语言获得CPU的占用率*/ /************************/#include #include #include //头文件struct occupy //声明一个occupy的结构体{ char nam原创 2017-03-01 09:40:39 · 1712 阅读 · 0 评论 -
C && PGSQL Linux下PostgresQL数据库C语言接口(转载)
转载请注明本文出处:leonidasFlames的blog,链接为:Linux下PostgresQL数据库C语言接口:libpq (一) libpq 是 PostgreSQL的C语言应用程序的接口。libpq 是一套允许客户程序向PostgreSQL 后端服务进程发送查询 并且获得查询返回的库.libpq 同时也是其他几个 PostgreSQL 应用接口原创 2017-03-01 09:42:48 · 1202 阅读 · 0 评论 -
C语言编译全过程【转】
C语言编译全过程【转】http://www.linuxdiyf.com/viewarticle.php?id=175655编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 编译的完整过程:C源程序-->预编译处理(.c)-->编译、优化程序(.原创 2017-03-01 09:28:58 · 332 阅读 · 0 评论 -
C语言——可变参数
http://blog.chinaunix.net/space.php?uid=25304914&do=blog&id=3066441一、是什么我们学习C语言时最经常使用printf()函数,但我们很少了解其原型。其实printf()的参数就是可变参数,想想看,我们可以利用它打印出各种类型的数据。下面我们来看看它的原型:int printf( const char* format, .原创 2017-03-01 09:29:08 · 375 阅读 · 0 评论 -
linux网络编程:用C语言实现的聊天程序(异步通信)
http://blog.chinaunix.net/space.php?uid=25944391&do=blog&id=2854240本片文章,在上一篇:linux网络编程:用C语言实现的聊天程序(同步通信) 的基础上,增加了IO复用的功能,实现了聊天程序的异步通讯! 1、使用IO复用可以在等待的时候加入了超时的时间,如果等待的时间没有达到超时时间,那么该情况与阻塞的情况一致。而当超时的时原创 2017-03-01 09:29:18 · 283 阅读 · 0 评论 -
SO_KEEPALIVE选项
SO_KEEPALIVE 在《UNIX网络编程第1卷》中也有详细的阐述: SO_KEEPALIVE 保持连接检测对方主机是否崩溃,避免(服务器)永远阻塞于TCP连接的输入。设置该选项后,如果2小时内在此套接口的任一方向都没有数据交换,TCP就自 动给对方 发一个保持存活探测分节(keepalive probe)。这是一个对方必须响应的TCP分节.它会导致以下三种情况:对原创 2017-03-01 09:41:17 · 503 阅读 · 0 评论 -
socket简单应用服务端代码(原创)tcp c/s
server.c: #include #include #include //perror错误输出#include #include #include #include #include #include #include #define PORT 8999#define MAXSIZE (8 * 4096)int main(int argc, char原创 2017-03-01 09:41:04 · 857 阅读 · 0 评论 -
socket编程的同步、异步与阻塞、非阻塞示例详解之二
接上文:http://blog.chinaunix.net/uid-26000296-id-3755264.html三、异步阻塞模式另外一个阻塞解决方案是带有阻塞通知的非阻塞 I/O。在这种模型中,配置的是非阻塞 I/O,然后使用阻塞 select 系统调用来确定一个 I/O 描述符何时有操作。使 select 调用非常有趣的是它可以用来为多个描述符提供通知,而不仅仅为一个原创 2017-03-01 09:41:01 · 503 阅读 · 0 评论 -
Gtk+/Glade编程(一)--简介
http://jianjiaosun.blog.163.com/blog/static/13612448620110169390202/By unanao 本文是我学习GTK+和glade3进行图形界面编程的一点学习心得的整理,主要是使用GTK+/Glade编程的文档较少,而且没有说名如何将二者联系起来,以及二者之间的关系。本文通过比较使用Glade和不使用Glade进行GUI编原创 2017-03-01 09:39:02 · 462 阅读 · 0 评论 -
GLIB: undefined reference to 'g_thread_init'
错误消息如下: undefined reference to `g_thread_init' 原因是没有加上相应库引用,因为程序在链接的时候需要库的支持。只用将 gcc test.c -o test改为 gcc test.c -o test `pkg-config --cflags gtk+-2.0` `pkg-config --libs原创 2017-03-01 09:39:05 · 909 阅读 · 0 评论 -
QQ设计第1-5步
第1步:使用Glade 3 设计界面第2步:读懂 server.c 和 client.c 源代码第3步:读我编写的 chat_server 和 chat_client (GTK 与 server.c 和 client.c 源代码 的结合)第4步:在我编写的基础上,进行进一步的开发,如下:1. 客户端——登录界面(用户名、密码,登录按钮, 注册) 技术:C语言(socket, thr原创 2017-03-01 09:39:18 · 260 阅读 · 0 评论 -
getsockname与getpeername
http://blog.csdn.net/shijian408/article/details/7735764getsockname与getpeername是返回套接口关联的本地协议地址和远程协议地址。int getsockname(int sockfd, struct sockaddr * localaddr, socken_t * addrlen);int getpeernam原创 2017-03-01 09:39:34 · 539 阅读 · 0 评论 -
select
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式原创 2017-03-01 09:39:39 · 448 阅读 · 0 评论 -
Linux信号signal处理机制
信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。 信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。 一、信号的基本概念 本节先介原创 2017-03-01 09:39:52 · 298 阅读 · 0 评论 -
TCP/IP协议栈
TCP/IP协议,或称为TCP/IP协议栈,或互联网协议系列。TCP/IP协议栈(按TCP/IP参考模型划分)应用层FTP SMTP HTTP ...传输层TCP UDPIP网络层IP ICMP IGMP网络接口层ARP RARP以太网令牌环FDDI ...包含了一系列构成互联网基础的网络协议。地址只有32位,IP地址空间有限;不支持服务等级(Quality of原创 2017-03-01 09:39:55 · 696 阅读 · 0 评论 -
TCP/IP报头
TCP/IP报头 参考:http://www.zdnet.com.cn/developer/code/story/0,2000081534,39031256,00.htm TCP是美国国防部设计的两种传输协议之一,另一种是UDP。UDP是一种不可靠的网络服务,负载比较小,而TCP则是一种可靠的通信服务,负载相对而言比较大。TCP采用套接字(socket)原创 2017-03-01 09:40:03 · 411 阅读 · 0 评论 -
C语言温习总结之一《C语言深度剖析》部分(目前看到75页)
第一部分 《C语言深度剖析》 原文: C语言深度解剖.pdf 1. sizeof 是关键词不是函数,可以这么写:sizeof(int)/sizeof(i)/sizeof i,但不能这么写sizeof int!“size(int) * p”表示什么意思呢?sizeof(int) = 4,所以是“4*p”! 留个问题:以下代码运行,先后打印什么呢?原创 2017-03-01 09:40:13 · 329 阅读 · 0 评论 -
asterisk配置相关网站
http://www.asterisk.org //官方主页http://www.asteriskguru.com/tutorials/firefly_softphone.html//firefly 配置的说明http://www.asteriskguru.com/http://www.sinosip.net/phpBB2/viewtopic.php?t=118&sid原创 2017-03-01 09:40:26 · 399 阅读 · 0 评论 -
asterisk代码框架
英文出处:http://www.asterisk.org/doxygen/trunk/AsteriskArchitecture.html#ArchInterfaceCodec 作者: RussellBryant russell@digium.com> 注意: 这篇文档所描述的内容,可能已经过时。为了保证您所获取的信息是最新的,请您确保原创 2017-03-01 09:40:29 · 500 阅读 · 0 评论 -
socket编程的同步、异步与阻塞、非阻塞示例详解之一
简介图 1. 基本 Linux I/O 模型的简单矩阵 每个 I/O 模型都有自己的使用模式,它们对于特定的应用程序都有自己的优点。本节将简要对其一一进行介绍。一、同步阻塞模式在这个模式中,用户空间的应用程序执行一个系统调用,并阻塞,直到系统调用完成为止(数据传输完成或发生错误)。/* * \brief * tcp client */原创 2017-03-01 09:40:58 · 520 阅读 · 0 评论 -
linux网络编程:用C语言实现的聊天程序(同步通信)
http://blog.chinaunix.net/space.php?uid=8196371&do=blog&id=1641031通过TCP协议,用C语言实现的同步聊天程序,注释写的比较详细,个人觉得对字符串处理比较充分,能够正常编译运行,拿出来和大家分享一下!1、客户端源代码:#include stdio.h>#include stdlib.h>#include string.h>原创 2017-03-01 09:29:21 · 1203 阅读 · 0 评论 -
c语言 数 组
数 组 数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。 本章介绍数值数组和字符数组,其余的在以后各章陆续介绍。数原创 2017-03-01 09:29:24 · 421 阅读 · 0 评论 -
gcc命令行详解
1、gcc包含的c/c++编译器gcc、cc、c++、g++gcc和cc是一样的,c++和g++是一样的,一般c程序就用gcc编译,c++程序就用g++编译2、gcc的基本用法gcc test.c这样将编译出一个名为a.out的程序gcc test.c -o test这样将编译出一个名为test的程序-o参数用来指定生成程序的名字3、为什么会出现undefined re原创 2017-03-01 09:36:19 · 328 阅读 · 0 评论 -
linux设备驱动归纳总结(三):2.字符型设备的操作open、close、read、write
请参考下面三篇文章:struct inode 和 struct fileLinux2.6X内核中文件相关结构体总结Linux 内核文件系统与设备操作流程分析下图为多个进程打开同一文件的情况:http://blog.chinaunix.net/uid-25014876-id-59417.htmllinux设备驱动归纳总结(三):2.字符型设备的操作open、close、read、write原创 2017-03-01 09:36:32 · 1091 阅读 · 0 评论 -
qaz718035146 是我,我说错了!!现在有真相,明白了!
按楼主的逻辑下面这个结果应该为5,可为什么我测试的结果是6(gcc 4.4.1)?x = 1;y = (++x) + (++x);求解释回复(7) 收起回复 5楼2012-04-08 16:45举报 | 冷夜·皓月: 我觉得y = (++x) + (++x);这个的本质还是y=x+x,但是x自增了两次,所以y=6了。 举报原创 2017-03-01 09:36:48 · 333 阅读 · 0 评论 -
+-小数四舍五入c代码---
点击(此处)折叠或打开#include "stdio.h"#include math.h>double myround(double x);int main(void){ double x; printf("(正负小数四舍五入)请输入小数:"); scanf("%lf",&x); printf("四舍五入后为:%l原创 2017-03-01 09:36:51 · 473 阅读 · 0 评论 -
pthread-生产消费.c -----注释
点击(此处)折叠或打开/************************************************ * * The classic producer-consumer example. * Illustrates mutexes and conditions. * by Zou jian guo ah_zou@tom.com> * 2003-12-22原创 2017-03-01 09:36:54 · 435 阅读 · 0 评论 -
Linux stat函数讲解
Linux stat函数讲解:表头文件: #include #include 定义函数: int stat(const char *file_name, struct stat *buf);函数说明: 通过文件名filename获取文件信息,并保存在buf所指的结构体stat中返回值: 执行成功则返回0,失败返回-1,错误原创 2017-03-01 09:36:57 · 392 阅读 · 0 评论 -
Linux_Struct file()结构体详解
struct file结构体定义在/linux/include/linux/fs.h(Linux 2.6.11内核)中,其原型是:struct file { /* * fu_list becomes invalid after file_free is called and queued via * fu_rcuhead for RCU freeing原创 2017-03-01 09:37:06 · 2839 阅读 · 0 评论 -
操作系统原理——互斥同步
1. ++++++ 生产者-消费者问题生产者-消费者问题是一个经典的进程同步问题,该问题最早由Dijkstra提出,用以演示他提出的信号量机制。在同一个进程地址空间内执行的两个线程生产者线程生产物品,然后将物品放置在一个空缓冲区中供消费者线程消费。消费者线程从缓冲区中获得物品,然后释放缓冲区。当生产者线程生产物品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者线程释放出一个空缓冲原创 2017-03-01 09:37:21 · 578 阅读 · 0 评论 -
OS: 读者写者问题(写者优先+LINUX+多线程+互斥量+代码)
摘自:http://blog.csdn.net/yaozhiyi/article/details/7563869生产者消费者:http://blog.csdn.net/yaozhiyi/article/details/7563050一. 引子最近想自己写个简单的 WEB SERVER ,为了先练练手,熟悉下在LINUX系统使用基本的进程、线程、互斥等,就拿以前学过的 OS 问题开开原创 2017-03-01 09:37:24 · 937 阅读 · 0 评论 -
Linux内核编程风格
这篇短小的文档用于描述linux内核编程中推荐的编程风格。编程风格是很个人 化的东西,我不想把我的观点_强加_给任何人,但这是我必须维护的代码中所遵守 的,我也建议其他部分的代码也能遵守它。请至少给这里的观点一些考虑。 首先,我建议你打印一份GNU代码风格,不是去读它,而是把它烧了,这是个很 不错的姿态。 不废话了,下面就是Linux内核编程风格: 第一章:缩进 制表符(ta原创 2017-03-01 09:40:42 · 835 阅读 · 0 评论