页首Html代码

返回顶部

随笔分类 -  C/C++

unix编程 linux编程 c语言编程 C++ c/c++经常放在一起。
摘要:我的C++的一个类,要在另一个函数中使用到,原来按照一般的数据类型传递参数,比如:#include <iostream>#include <unistd.h>#include <string.h>#include <stdlib.h>#include <stdio.h>using namespace std;class CClass{ public: CClass(){ std::cout<<"String CClass"<<std::endl; } ~CClass(){ std::cout 阅读全文
posted @ 2012-03-23 15:04 ayanmw 阅读(945) 评论(0) 推荐(0) 编辑
摘要:由于leveldb基于key value,而且是根据字符串进行排序的。key 和value都是string类型的,对于我要处理的有许多数字,所以就要找一个C /C++解析文本的工具了。C 在这方面很弱,你必须编写大量的代码,才能完成看似简单的工作,所以就用C++的string的方法看看了。首先 文档 我真是郁闷,只能搜索了,不过这里有而过好网站:http://www.cplusplus.com/reference/string/string/find/以后可以来这里找示例了,linux下的man不见得 那么好,对于编程来讲,烂透了。我其实只想实现1个功能,一个是从字符串A找到两个,,之间的数据 阅读全文
posted @ 2012-03-19 18:44 ayanmw 阅读(6954) 评论(0) 推荐(0) 编辑
摘要:高并发的C ++程序,有一个问题就是 最多能有多少线程数?本以为Linux下会有ulimit的限制呢,看了看,没有。可能对于线程数 还真没有限制,比如进程好像是65535个进程数吧(PID的范围);所以写个小程序来看看Linux下C/C++能开多少线程数。#include <pthread.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#define MAX_TEST_THREAD 500000void * handle(voi 阅读全文
posted @ 2012-03-19 10:46 ayanmw 阅读(7842) 评论(2) 推荐(0) 编辑
摘要:#include <iostream>using namespace std;#include <stdio.h>struct _test{ int a; _test() :a(1){ this->a=2; }};int main() {struct _test test;printf("struct test.a=%d\n",test.a);return 0;}可能这不是特殊用法,我也是刚开始深入C++,上面的struct _test 在构造函数中给a赋值,有两种操作,一种是构造函数后的" :a(1)",意思是a=1;a猛 阅读全文
posted @ 2012-03-16 16:57 ayanmw 阅读(2058) 评论(0) 推荐(0) 编辑
摘要:C++本来是兼容C语言的,但是C语言的代码如何能让C++直接来使用呢?其实很简单,稍微修改一些内容即可。一、由于C++对函数名的处理和C语言不一样,所以在头文件函数声明前后添加:#ifdef __cplusplusextern "C" {#endif//C语言函数声明代码;头文件和define函数声明不必放在这里#ifdef __cplusplus}#endif /* __cplusplus */并且C++如果调用函数,必须有函数声明,和C语言不一样,C语言是只要.o库里有,即使没有声明也可以使用。所以如果有函数没有声明,也必须声明出来!二、C++对强制类型转换可能比较严格 阅读全文
posted @ 2012-03-15 20:01 ayanmw 阅读(929) 评论(0) 推荐(0) 编辑
摘要:一队列有N个人,从第一位开始报数,报到3的人出列,后面的人继续从1开始报数,报到末尾后从头开始,如此反复。请确定最后一位是原队列中的第几个人。N的值为正整数。看到这道题目,以前做过。现在来复习一下吧:首先用结构体 和 循环单链表来做,最简单:View Code 1 #include <stdio.h> 2 int N= 10; 3 4 struct PEOPLE{ 5 int Number; 6 struct PEOPLE *next; 7 }*cur,*tmp; 8 9 int main(int argc,char **argv){10 if(argc==2){... 阅读全文
posted @ 2012-03-09 09:54 ayanmw 阅读(606) 评论(0) 推荐(0) 编辑
摘要:C语言的#define 简而言之 就是 替换你的代码为目标代码的。最近我有在用,比如#define PRINT_LINE(FP,MSG) fprintf(FP,"%s:%d %s\n",__FILE__,__LINE__,MSG)#define free_safe(EXP) if((EXP)!=NULL && \ (unsigned int)(EXP)>(unsigned int)0x07000000 && \ (unsigned int)(EXP)<(unsigned int)0xffffff... 阅读全文
posted @ 2012-03-05 15:28 ayanmw 阅读(2479) 评论(0) 推荐(0) 编辑
摘要:最近遇到了一个问题,就是一个头文件有一个static的变量,编译的文件有几个.o的,他们都引用了这个头文件,但是当打印出这个变量(经过修改了)的值得时候,居然不一样,打印出地址来,地址居然也不一样。两个不同地址,一个相同的变量名?究竟怎么回事情呢???这个变量许多文件要用。但是放到h文件,又是个问题啊。。。使用extern 声明外部变量,必须符合下面的情况生成的.o 不能引用包括这个变量定义的文件。但是我又使用了这个头文件的其他函数,郁闷了。经过试验 应是这样的,变量 不要用static,因为外部要extern使用,反而不能用static了 才郁闷呢。实验如下:head1.h#include 阅读全文
posted @ 2012-02-28 13:50 ayanmw 阅读(319) 评论(0) 推荐(0) 编辑
摘要:C语言是过程式的语言,代码执行一般是 从前到后.但是比如用户按了ctrl+C 中断了程序,程序就没办法执行某些结束的代码了.可以使用atexit 函数,在main()靠前的地方加上这些代码,其后 如果程序 不管怎么中断,都会执行atexit代码的...如果atexit函数里面有个死循环,我想 你ctrl+C 是不太可能结束程序的...除非 关闭窗口或者 ----------- 使用中断 结束它.中断 很强大.哦 这里的中断 其实我想说 是 signal信号量.他的用法 很强大,具体可以man signal 来查看.其中atexit(void*func)如果有多个,以第一个为准,另外,后面如果想 阅读全文
posted @ 2012-02-22 15:59 ayanmw 阅读(545) 评论(0) 推荐(0) 编辑
摘要:现在用C语言,感觉很难写出高质量的代码,我觉得这个和编程方法,以及编程思想有许多关系,百度也找不到什么好的资料,有一些书 unix高级编程 ek2k有pdf的,应该不错.现在呢,我就通过看别人的代码来提高自己吧...现在在看nginx 1.1.15的源码,源码比较庞大,我不是为了研究它而去看,而是 看其中的编程方法,以及关于 多线程 /进程 ,数据通信 相关的代码.其中看到这个:typedef time_t (*ngx_path_manager_pt) (void *data);不知道 typedef 是不是多余??? 没有他 这就是一个 声明 而已么?typedef time_t (*ngx 阅读全文
posted @ 2012-02-22 15:09 ayanmw 阅读(373) 评论(0) 推荐(0) 编辑
摘要:原来看过一次,后来当自己有段错误的时候,才想起来这个很有用.如果不用他的方法,段错误很恶心的,不好找出来的.下面就是原文,不过 最初出处不得而知=======================复制存在问题,格式不正确...先给链接吧.http://blog.sina.com.cn/s/blog_606c49090100eohs.htmlcore文件的资料:http://blog.sina.com.cn/s/blog_489c2413010080ml.htmlLinux系统下的多线程编程入门http://blog.sina.com.cn/s/blog_489c241301008nco.html这个 阅读全文
posted @ 2011-12-29 13:41 ayanmw 阅读(3012) 评论(0) 推荐(1) 编辑
摘要:刚才看了看 你必须知道的495个C语言问题 ,在7.3内存分配 strcat问题上发现strcat原来是不进行自动分配内存空间的...我晕...strcat是将*s2的字符串附加到*s1上,由于是pointer,所以无法检测内存溢出问题.只能由使用者自行判断.也就是 strcat(char *s1,char *s2) s1的空间 必须至少是 strlen(s1)+strlen(s2)+1的值.否则内存溢出.本来我自己写了一个类似的函数,然后发现有个strcat和我写的函数效果一样,就用strcat了.但是其实我写的函数内部有空间分配的!!这个strcat没有.于是呼,我的程序必然有内存泄露或溢 阅读全文
posted @ 2011-12-26 22:53 ayanmw 阅读(512) 评论(2) 推荐(0) 编辑
摘要:在手册上有 time ctime gmtime localtime asctime mktime settimeofday,gettimeofday等时间函数还有UTC和本机时间和这些函数的区别.了解这些 是linux时间编程必须得!首先说基本的结构体和typedef 以及define:time_t <time.h>#ifndef __TIME_T#define __TIME_T /* 避免重复定义 time_t */typedef long time_t; /* 时间值time_t 为长整型的别名*/#endif使用方法是 time(&time_tvar);这样time. 阅读全文
posted @ 2011-12-22 17:31 ayanmw 阅读(2276) 评论(0) 推荐(0) 编辑

页脚Html代码