\r\n和\n的区别
\r 是回车,return \n 是换行,newline 我们在平时使用电脑时,已经习惯了回车和换行一次搞定,敲一个回车 键,即是回车,又是换行,但在早期的打字机上,要另起一行打字需要两个步骤,首先要发送命令"\r”将打字头复位,即回车,然后再发送命令"\n”让打字 机走纸移到下一行,所以这个历史遗留问题导致了如今我们在DOS-Windows的系统里需要区分"\r\n”和“\n”,但在Unix中只有"...
作者: seans88 发布时间: 10-22
使用zlib库里的compress函数与uncompress函数
zlib 是通用的压缩库,提供了一套 in-memory 压缩和解压函数,并能检测解压出来的数据的完整性(integrity)。zlib 也支持读写 gzip (.gz) 格式的文件。下面介绍两个最有用的函数——compress 和 uncompress。 int compress(Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen); compress函数将 source 缓冲区中的内容压缩到 dest 缓冲区。 sourceLen 表示sou...
作者: 小步前进 发布时间: 10-21
关于QDataStream::readBytes和QDataStream::read..
Qt的参考文档中关于这两个函数的说明如下(http://doc.trolltech.com/3.3/qdatastream.html#readBytes) QDataStream & QDataStream::readBytes ( char *& s, uint & l ) Reads the buffer s from the stream and returns a reference to the stream. The buffer s is allocated using new. Destroy it with the delete[] operator. If the length is zero or s cannot be a...
作者: 小步前进 发布时间: 10-21
程序实现函数strcpy的功能
程序1 代码如下: #include <stdio.h> int main(void) { char a[] = "Linux C Program", b[20], c[20]; int i; for(i = 0; *(a+i) != '\0'; i++) *(b+i) = *(a+i); *(b+i) = '\0'; char *p1, *p2; p1 = a; p2 = c; for(; *p1 != '\0'; p1++, p2++) *p2 = *p1; *p2 = '\0'; printf("%s\n", a); printf("%s\n", b); printf("%s\n", c); return 0; } 运行结果: Linux C Progra...
作者: aaron_xueli 发布时间: 10-21
linux下互斥量的简单使用
pthread_mutex_t mutex_detect = PTHREAD_MUTEX_INITIALIZER;//声明锁,注意后面的赋值有不同含义,可查man pthread_mutex_init(&mutex_detect,NULL);//初始化锁 pthread_mutex_lock(&mutex_detect);//加锁 pthread_mutex_unlock(&mutex_detect);//解锁
作者: mpandar 发布时间: 10-20
C/C++ 内存分配方式,堆区,栈区,new/delete/m..
内存分配方式 内存分配方式有三种: [1] 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量, static 变量。 [2] 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中 ,效率很高,但是分配的内存容量有限。 [3] 从...
作者: wsnhyjj 发布时间: 10-20
经典算法-冒泡排序法
1. 基本思想: 每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 2. 排序过程: 【示例】: 初始关键字 [49 38 65 97 76 13 27 49] 第一趟排序后 13 [38 65 97 76 49 27 49] 第二趟排序后 13 27 [65 97 76 49 38 49] 第三趟排序后 13 27 38 [97 76 49 65 49] 第四趟排序后 13 27 38 49 [49 97 65 ...
作者: 1987hanen 发布时间: 10-19
关于 pthread_cond_signal与pthread_cond_broadc..
在code review中,我会发现很多人thread_mutex_lock()和pthread_mutex_unlock()之间调用pthread_cond_signal或pthread_cond_broadcast函数,从逻辑上来说,这种使用方法是完全正确的。但是在多线程 环境中,这种使用方法可能是低效的。posix1标准说,pthread_cond_signal与pthread_cond_broadcast无需考 虑调用线程是否是mutex的拥有者,也就是所,可以在lock与unlock以外的...
作者: aaron_xueli 发布时间: 10-19
关于C语言中字符串函数设计的一些想法
字符串处理函数设计的几个基本原则 1.最好是设计成字符指针来进行操作 如,char *ch; 2.判断内容,很多情况下判断第一个字符即可 如,if( *ch>=0 && *ch=<9); 判断是否为数字; if( *ch >='a' && *ch <= 'z'); 判断是否为小写字母; 3.判断是否已经结束? 如,if( ch == 0 ); 也等同于 if( ch == NULL); 4.字符串处理过程 针对一些小的字符串,在处理过程中最好是保留原串,而新开辟...
作者: Mr_Yao 发布时间: 10-19
字符集转换函数
int code_convert(char *from_charset,char *to_charset,char *inbuf,size_t inlen,char *outbuf, size_t outlen) { iconv_t cd; char **pin = &inbuf; char **pout = &outbuf; cd = iconv_open(to_charset,from_charset); if (cd==0) return -1; memset(outbuf,0,outlen); if (iconv(cd,pin,&inlen,pout,&outlen)==-1) return -1; iconv_close(cd); return 0; } int u2g (c...
作者: w1_xiao 发布时间: 10-19