
C/C++
ace_fei
调试的错误就是编程给你最好的东西,因为在每个错误上面都标志着前进的一步。
展开
-
UNIX Domain Socket IPC (sockaddr_un )
socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程。这是因为,IPC机制本质上是可靠的通讯,而网络协议是为不可靠的通讯设计的。UNIX Dom转载 2011-05-11 15:28:00 · 19618 阅读 · 1 评论 -
The Biggest Changes in C++11 (and Why You Should Care)
Posted by Danny Kalev on Mon, Jun 20, 2011 @ 06:03 AMIt’s been 13 years since the first iteration of the C++ language. Danny Kalev, a former member of the C++ standards committee, explains转载 2012-09-04 09:14:54 · 1162 阅读 · 0 评论 -
各种编程语言中屏蔽代码块
1. bash:<<EOFecho "This is content block"EOF2.perl=blockprint "This is content block"=cut3.python'''print "This is content block."'''4.c/c++#if 0cout << "This is cont原创 2012-09-14 16:41:17 · 1700 阅读 · 0 评论 -
vim使用中遇到的问题
1. ctrl+] 碰到多个标签时,不出现选择列表,直接跳转到第一个tag的位置。使用g]即可,功能 类似于 CTRL-],但使用 ":tselect" 而不是 ":tag"。2 set mouse字符串 (缺省为空,GUI缺省为 "a")允许使用鼠标。只可用于特定终端 (图形化控制台)。可以为不同模式分别打开鼠标: n原创 2012-09-15 22:20:06 · 738 阅读 · 0 评论 -
头文件中定义const全局变量应注意的问题
我们知道,在 C++(但不是在 C 语言)中,const 限定符对默认存储类型稍有影响。在默认情况下,全局变量的链接性为外部的,但 const 全局变量的链接性为内部的。也就是说,在 C++ 看来,全局 const 定义就像使用了 static 说明符一样。 因此,可以将 const 常量定义在头文件中供工程中的多个其它文件包含引用,并且编译时不会产生变量重复定义的错误。当然,也可转载 2013-02-18 12:37:00 · 5382 阅读 · 0 评论 -
关于代码中的密码维护
公司的域密码是统一管理,经常会提醒换密码,但是我在很多程序中都需要用到这个密码,每次换完密码后都要改很多地方。为了减少麻烦,其实只需把密码放到环境变量中,以后每次只用修改环境变量的值就好了。BASH/KSHexport MYPWD='DomainPWD'CSHsetenv MYPWD 'DomainPWD'下面是我常用语言读取环境变量的方法C/C++#i原创 2013-05-18 12:05:53 · 1061 阅读 · 0 评论 -
ip_tables.h:217: error:invalid conversion from 'void*' to 'xt_entry_target*'
最近项目有个功能,需要读取linux服务器上iptables rule的信息。一开始我是用popen 去调用命令“iptables -L -nv”,然后用fgets去获取命令返回结果。但是这种方法CPU耗时非常打,特别是调用popen和fgets的开销大。所以需要换一种方法,用libiptc的接口来实现。但是在编译的时候,因为我是用的C++编译,但是失败了,ip_table原创 2013-03-14 18:41:58 · 2274 阅读 · 0 评论 -
使用pthread时需要注意的问题
如果主线程需要等待子线程结束再结束,就需要在主线程中使用pthread_join。否则就不要用,以免子线程是死循环,导致整个程序都死循环。原创 2013-08-29 16:40:56 · 1028 阅读 · 0 评论 -
scanf("%*[^\n]%*c")的意思是什么
^表示"非",[^\n]表示读入换行字符就结束读入。这个是scanf的正则用法,我们都知道scanf不能接收空格符,但是使用%[^\n]就可以了。*表示该输入项读入后不赋予任何变量,即scanf("%*[^\n]%*c")表示跳过一行字符串。原创 2014-01-03 16:56:12 · 8878 阅读 · 0 评论 -
C语言中的三目运算符 ?: 的新用法
说明: 该运算符不仅能用在变量之间,竟然还可以用在函数之间,相当于可传参数的函数调用 1 void show_1(int val) 2 { 3 cout "function show_1 called! and var is " endl; 4 } 5 6 7 void show_2(int val) 8 { 9 cout "fun转载 2014-04-10 16:01:26 · 2703 阅读 · 0 评论 -
iptc example
now let's see the small example (the working one). We'd like to create iptables' equivalent rule: iptables -A INPUT -s 156.145.1.3 -d 168.220.1.9 -i eth0 -p tcp --sport 0:59136 --dport 0:51201 -m limi转载 2015-02-03 15:21:18 · 1354 阅读 · 0 评论 -
gvim 多标签页打开
编辑gvim.reg文件Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\Edit with Vim]@="用 gVim 多标签编辑(&g)"[HKEY_CLASSES_ROOT\*\shell\Edit with Vim\command]@="\"D:\\Program Files\\Vim\\v原创 2012-09-04 17:41:42 · 2338 阅读 · 0 评论 -
从一个文本文件读取正文,将其中的小写字母转化成大写字母,大写字母转换成小写字母,其他字符不变。
#include #include #include using namespace std;int main(int argc, char* argv[]){ ifstream infile("txt"); if (!infile) { cerr << "Can't open file." << endl; } char ch原创 2012-07-04 10:52:16 · 15252 阅读 · 0 评论 -
fstream和ifstream详细用法
ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器( 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout>) 从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>x;就表示从标准输入流中读取一个指定类型(即转载 2011-05-11 16:35:00 · 20669 阅读 · 2 评论 -
(unix domain socket)使用udp发送>=128K的消息会报ENOBUFS的错误
1、Unix domain socket简介<br />unix域协议并不是一个实际的协议族,而是在单个主机上执行客户/服务器通信的一种方法,所用API于在不同主机上执行客户/服务器通信所有的API(套接字API,如AF_INET、AF_INET6等类型的API)相同。unix域协议可以视为是进程之间本地通信IPC的一种。<br />unix域提供两类套接口:字节流套接口(类似TCP)和数据报套接口(类似UDP)。使用Unix域套接口的理由有三:Unix域套接口往往比位于同一主机的TCP套接口快出一倍。转载 2011-05-11 17:41:00 · 1106 阅读 · 0 评论 -
#pragma pack(push,1)/#pragma pack(pop)
对齐很重要,对结构体,一定要对齐,尤其是涉及到文件/内存双向转换的 <br />#pragma pack(push,1)<br />struct RateInfoOld<br /> {<br /> time_t ctm; // rate time<br /> int open; // open price: 11987=119.87<br />转载 2011-04-26 13:49:00 · 771 阅读 · 0 评论 -
C语言中位域(bit struct)和#pragma pack(n)指令对其影响。
<br />刚才看INTERNETWORKING with TCP/IP Volume 3的时候看到下面代码struct rtp{<br /> unsigned int rtp_cc:4<br />....<br />};<br />有点奇怪,不知道这个unsigned int rtp_cc:4是什么意思,照例google了下得到如下信息:<br />有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。<br />例如在存放一个开关量时,只有0和1 两种状态,用转载 2011-04-26 13:13:00 · 797 阅读 · 0 评论 -
(转)字节序问题--大端法小端法
<br />一、字节序定义<br />字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。<br />其实大部分人在实际的开发中都很少会直接和字节序打交道。唯有在跨平台以及网络程序中字节序才是一个应该被考虑转载 2011-04-26 13:31:00 · 752 阅读 · 0 评论 -
C++问题集
1. #include #include using namespace std; class A{ public: A(string x) { test = x; } const char& operator[](size_t pos) const {return test[原创 2012-01-16 17:11:03 · 550 阅读 · 0 评论 -
用C语言来分割字符串
#include int main(){ char str1[10] = {0}; char str2[10] = {0}; char str3[10] = {0}; sscanf("1,2,3#3,4#4,5","%[^#]#%[^#]#%[^#]", str1, str2,str3); printf("The split result is:\n%s转载 2012-03-09 15:23:51 · 7533 阅读 · 0 评论 -
总结C++ Primer中的notes(一)
说明:C++ Primer, Fourth Edition (中英文)下载地址:http://download.youkuaiyun.com/detail/ace_fei/4165568以下内容截取自该书籍,都是一些基础而又容易忽略的知识点。初窥输入/输出endl 是一个特殊值,称为操纵符,将它写入输出流时,具有输出换行的效果,并刷新与设备相关联的缓冲区。通过刷新缓冲区,用户可原创 2012-03-23 12:34:27 · 1362 阅读 · 0 评论 -
字符串数组初始化0 与memset 0 效率的分析
转自http://hi.baidu.com/yangyangye2008/blog/item/cec4da0e3007c7366159f3c1.html最近要分析程序的性能,所以上网查了查资料,的处理下面结论:#defineARRAYSIZE 2048voidmain() { chararrayA[ARRAYSIZE]={0}; chararrayB[ARRAY转载 2012-04-11 10:06:44 · 21351 阅读 · 0 评论 -
熟悉C语言的位操作
#include int main(){ //HEX Numbers in C unsigned char myreg = 0x0; printf("set myreg Enable.\n"); //Setting a BIT in Register myreg |= (1<<5); //Testing The Status of a Bit原创 2012-04-27 16:26:48 · 905 阅读 · 0 评论 -
博客迁移至github pages
优快云早已变味,以后新文章,请到https://acefei.github.io/上浏览! 如有任何问题,可以在acefei’ lobby上一起交流学习。原创 2017-11-21 17:19:03 · 691 阅读 · 0 评论