C/C++
文章平均质量分 63
iamlate
这个作者很懒,什么都没留下…
展开
-
关于Visual C++运行非托管程序缺失DLL文件
类似这样的问题很多,但是往往没有记录,下次再遇到的时候,又得查今天遇到的问题是,为了复习下windows api的网络编程,装了一个visual c++ 2008 express edition,但是运行非托管的C++程序的时候暴出缺失msvcr90d.dll.原因,记得以前查的原创 2011-07-19 19:19:54 · 1489 阅读 · 0 评论 -
Linux下的段错误(segmentation fault)产生的原因及调试方法
简而言之,产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址.一般来说,段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的gdt表转载 2011-10-17 17:25:34 · 864 阅读 · 0 评论 -
sprintf()详解
函数功能:把格式化的数据写入某个字符串 头文件:stdio.h 函数原型:int sprintf( char *buffer, const char *format [, argument] … ); 返回值:字符串长度(strlen)转载 2011-10-08 19:03:18 · 1069 阅读 · 0 评论 -
C++的XML编程经验――LIBXML2库使用指南
来源:http://www.blogjava.net/wxb_nudt/archive/2007/11/28/161340.html写这篇文章的原因有如下几点:1)C++标准库中没有操作XML的方法,用C++操作XML文件必须熟悉一种函数库,LIBXML2是其中一种很优秀的X转载 2011-10-08 20:03:37 · 759 阅读 · 0 评论 -
"libxml/parser.h: 没有那个文件或目录"解决方案
这是因为在ubuntu上没有安装libxml2-dev,这个包应该是开发用的,而已安装的libxml2应该只是像jre一样的部件。解决方案:sudo apt-get install libxml2-dev 这个命令算是安装上了。所有的头文件在/usr/include/libx转载 2011-10-09 10:54:36 · 14414 阅读 · 0 评论 -
Linux下Socket编程中用send发送结构体
Linux网络通信 Linux下多客户端聊天软件 最近在开发一个Linux下的聊天软件,好久没有做C语言的开发了,感觉到很多东西已经生疏了,这下又碰到用Socket传递结构体的问题,google了一下,发现也有不少朋友遇到同样的问题,所以就打算写出自己的解决办法,跟大家分享转载 2011-10-09 21:33:19 · 716 阅读 · 1 评论 -
memcpy()详解
函数原型#include #include void *memcpy(void *dest, const void *src, size_t n); 功能由src指向地址为起始地址的连续n个字节的数据复制到以dest指向地址为起始地址的空间内。函数返转载 2011-10-09 14:59:12 · 2140 阅读 · 0 评论 -
关于数据类型
在进一步讨论更深的主题之前,我们需要先停一停,快速地回顾一下可移植问题。Linux1.2版本和2.0版本之间的不同就在于额外的多平台能力;结果是,大多数源代码级的移植问题已经被排除了。这意味着一个规范的Linux驱动程序也应该是多平台的。 但是,与内核代码转载 2011-10-10 13:51:23 · 629 阅读 · 0 评论 -
关于“双工”什么的
全双工是通讯传输的一个术语 单工就是在同一时间只允许甲方向乙方传送信息,而乙方不能向甲方传送 。(比喻汽车的单行道) 全双工(Full Duplex)是 在微处理器与外围设备之间采用发送线和接受线各自独立的方法,可以使数据在两个方向上同时进行传送操作。指在发送转载 2011-10-18 18:13:56 · 721 阅读 · 0 评论 -
linux tcp并发式服务器应用SELECT函数编写实例源代码(转载)
#include #include #include #include #include #include #include #include #include #define MYPORT 1234 // the port user转载 2011-10-18 23:50:15 · 4338 阅读 · 0 评论 -
Linux select() 详解
select系统调用是用来让我们的程序监视多个文件句柄(file descriptor)的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有某一个或多个发生了状态改变。0、1、2三个,0是标准输入,1是标准输出,2是标准错误输出。0、1、2是整数表示的转载 2011-10-19 01:06:27 · 1307 阅读 · 0 评论 -
C语言 static的意义
在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)第一个作用:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容#include增加这条语句char a = ‘A‘; // global variablevo转载 2011-10-20 17:27:30 · 581 阅读 · 0 评论 -
警告: assignment makes pointer from integer without a cast的另外一种原因
char * = rtnString();原因是rtnString()函数没有在使用前声明。原创 2011-11-14 11:35:54 · 1776 阅读 · 0 评论 -
C语言提供了六种位运算符
一、位运算符C语言提供了六种位运算符:& 按位与| 按位或^ 按位异或~ 取反>> 右移1. 按位与运算按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101转载 2011-10-29 12:16:31 · 931 阅读 · 0 评论 -
关于errno与perror,strerror函数
errno是一个由POSIX和ISO C标准定义的符号,看(用)起来就好像是一个整形变量。当系统调用或库函数发生错误的时候,比如以只读方式打开一个不存在的文件时,它的值将会被改变,根据errno值的不同,我们就可以知道自己的程序发生了什么错误,然后进行相应的处理。有人说,函数不是可以返回值吗,根据返回值照样可以判断程序在哪里出错了,为什么还需要errno?如果你有这样的疑问,推荐你看下这篇文章。转载 2011-10-28 18:01:06 · 922 阅读 · 0 评论 -
关于initializer element is not constant错误
关于 static storage duration: C99 6.2.4 Storage durations of objects 第3款: 3 An object whose identifier is declared with external or internal linkage, or with the storage-class specifier static has sta转载 2011-10-31 10:57:50 · 24837 阅读 · 4 评论 -
WinSock I/O系列1:多路复用I/O支持多Client的实现及效率讨论
1. 引言多路复用I/O模型(select)是UNIX/LINUX用得的最多的一种I/O模型,在Windows下也可做为一种同步I/O使用。本文给出该I/O模型处理多Client的简单(在主线程中)实现。2. 关于selectselect I/O模型是一种异步I/O模型,在单线程中Linux/WinNT默认支持64个客户端套接字。这种转载 2011-10-19 01:18:24 · 957 阅读 · 0 评论 -
Linux 基于TCP/IP的文件传输系统
一、 设计目的通过Linux C编程,设计一个基于TCP/IP的文件传输系统,实现网络文件的收发。二、 设计环境VMware WorkStation 6.0.2+Fedora 10三、 设计方案转载 2011-10-08 05:54:47 · 2539 阅读 · 0 评论 -
宋敬彬-linux网络编程 cs例子
客户端:#include #include #include #include #include #include #include #define PORT 8888void process_conn_client(int s);int main(int ar转载 2011-09-28 16:20:59 · 1917 阅读 · 0 评论 -
linux send recv函数详解
int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用转载 2011-10-08 06:07:10 · 727 阅读 · 0 评论 -
C++ 容器类与Qt容器类对比 (2)连续容器类
容器类共享公共的接口,这使标准库更容易学习,只要学会其中一种类型就能运用另一种类型。标准库定义了三种顺序容器类型:vector、list 和 deque(是双端队列“double-ended queue”的简写,发音为“deck”)。它们的差别在于访问元素的方式,以及添加或删除元原创 2011-08-03 16:49:26 · 4217 阅读 · 0 评论 -
C++ 容器类与Qt容器类对比 (1)概述
C++中容器类是属于标准模板库中的内容,有必要回顾下标准模板库。STL = Standard Template Library,标准模板库,惠普实验室开发的一系列软件的统称。从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是原创 2011-08-03 15:18:00 · 1843 阅读 · 0 评论 -
访问和继承属性
访问属性有三种形式,即public, protected和private。我们这样来记会更加容易一些,在继承时:1、不管采用哪种形式(public, protected或private),基类中的私有成员都不可以被继承;如果非要在派生类中使用基类的私有成员,可以有两种方法:一转载 2011-09-06 01:05:28 · 676 阅读 · 0 评论 -
三十分钟掌握STL
这是本小人书。原名是《using stl》,不知道是谁写的。不过我倒觉得很有趣,所以化了两个晚上把它翻译出来。我没有对翻译出来的内容校验过。如果你没法在三十分钟内觉得有所收获,那么赶紧扔了它。文中我省略了很多东西。心疼那,浪费我两个晚上。译者:karycontac转载 2011-09-06 01:16:21 · 679 阅读 · 1 评论 -
编写类String 的构造函数、析构函数
/ String的析构函数String::~String(void) { delete [] m_data; // 由于m_data是内部数据类型,也可以写成 delete m_data;}// String转载 2011-09-06 01:09:08 · 525 阅读 · 0 评论 -
C++内存分配
在C++中,内存分成4个区,他们分别是堆,栈,静态存储区和常量存储区 1)栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区.里面的变量通常是局部变量,函数参数等. 2)堆,又叫自由存储区,它是在程序执行的过程中动态分配的,它最转载 2011-09-06 01:00:48 · 508 阅读 · 0 评论 -
errno详解
一、errno的由来 在C编程中,errno是个不可缺少的变量,特别是在网络编程中。如果你没有用过errno,那只能说明你的程序不够健壮。当然,如果你是WIN32平台的GetLastError(),效果也是一样的。 为什么会使用errno呢?个人认为,这是系统原创 2011-09-24 22:28:04 · 2933 阅读 · 0 评论 -
Linux下关于时间概念的C语言编程
Abstract 在程序中,经常需要输出系统的当前时间、计算程序的执行时间、使用计时器等。Introduction一、时间的类型1.格林威治标准时间 coordinated universal time(UTC)是世界标准时间,即常说的格林威治标准时间(转载 2011-09-27 10:12:16 · 493 阅读 · 0 评论 -
设置vim语法高亮显示和自动缩进
一、、首先,确认你的linux系统是否安装了功能完整的且足够新的vim。安装vim:# sudo apt-get install vim-full 二、接下来设置vim的配置文件 1、配置文件的位置在目录 /etc/vim 下面,有个名为vimr转载 2011-09-27 23:13:03 · 404 阅读 · 0 评论 -
C语言字符串函数总结
来源: 谷育龙的日志 今天总结了下C语言字符串函数。C语言字符串函数总结:1.字符处理库(ctype)中的函数2.stdio中的字符串和字符输入/输出的函数3.通用实用库stdlib中的字符串转换函数4.字符串处理库string中转载 2011-10-10 18:31:13 · 823 阅读 · 0 评论 -
二进制文件读写
我一直觉得二进制文件读写是个很容易的事,所以一直没在意,最近在写一个http客户端,实现文件下载的时候,发现总有问题,后来才发现是忘记写文件用二进制方式,惭愧的很啊。然后,就在网上搜索了一下,发现通过C语言实现二进制文件读写的资料居然出奇的少,这让我很愤怒,因为虽然这东西很简转载 2011-09-29 10:01:37 · 449 阅读 · 0 评论 -
fopen /open,read/write和fread/fwrite区别
fopen /open区别UNIX环境下的C对二进制流文件的读写有两套班子:1) fopen,fread,fwrite ; 2) open, read, write这里简单的介绍一下他们的区别。1. fopen 系列是标准的C库函数;open系列是 POSIX转载 2011-09-29 11:29:34 · 329 阅读 · 0 评论 -
C语言文件操作函数详解
在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之。一、流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下:typedef struct {int level;unsigne转载 2011-09-30 10:53:09 · 769 阅读 · 0 评论 -
大小端对齐
不同的 CPU 有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序最常见的有两种1 . Little endian :将低序字节存储在起始地址2 . Big endian : 将高序字节存储在起始地址 基本知识,回顾一下转载 2011-10-04 23:10:05 · 8282 阅读 · 1 评论 -
strcpy()和strncpy()的区别
strcpy:字串复制 原型:char *strcpy(char *dest, char *src); 功能:把src所指由'\0'结束的字符串复制到dest所指的数组中。 说明:src和dest所指内存区域不可以重叠且dest必须有足够转载 2011-10-08 06:02:27 · 370 阅读 · 0 评论 -
使用C语言来扩展PHP,写PHP扩展dll
以前写过一次PHP扩展DLL,那个是利用调用系统的COM口实现的扩展,与PHP不能真正融合。心血来潮,研究了一下PHP的源码,网上找了一些资料,自己尝试写了一个扩展DLL,测试没问题。下面记录一下具体扩展方法: 1、首先从www.php.net网站上下载php源码,此处以php-5.2.17版本为例,下载后解压至E:盘根目录下(目录可以自己随意定)。 2、下载安装VC++ 6.0,因为转载 2012-03-29 02:44:04 · 795 阅读 · 0 评论