`
jimmee
  • 浏览: 530132 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
1.安装mysql-server,在Ubuntu 10.04下安装mysql-server-5.1,会自动安装mysql-client_5.1  sudo apt-get install mysql-server-5.1 2.C APIs包含在mysqlclient库文件中与MySQL的源代码一块发行,用于连接到数据库和执行数据库查询,因此需要安装libmysqlclient-dev  sudo apt-get install libmysqlclient-dev  假定已安装成功,相关文件如下:  头文件在/usr/include/mysql目录下;  库文件在/usr/lib/mysq ...
#include <iconv.h> #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <string.h> #include <sys/stat.h> int code_convert(char *from_charset, char *to_charset, char *inbuf, size_t inlen, char *outbuf, size_t out ...
tcpdump is the premier network analysis tool for information security professionals. Having a solid grasp of this über-powerful application is mandatory for anyone desiring a thorough understanding of TCP/IP. Many prefer to use higher level analysis tools such as Ethereal Wireshark, but I believe th ...
As a network administrator, you've got to cultivate a certain amount of professional paranoia. tcpdump indulges your need to know and tells you exactly what's going on over your networks. By Carla Schroder | Posted Dec 1, 2004     I confess, I'm an outlaw at heart. I like using packet s ...
1. 使用struct来保存数据 2. 使用struct里面的函数指针指向相应的函数     #include <stdlib.h> #include <stdio.h> // 不完整的声明,方便后面函数指针类型变量的定义 struct Person; typedef struct Person *PPerson; typedef void (*setAge)(PPerson person, int age); typedef int (*getAge)(PPerson person); /** * 结构体,包含普通的变量(数据 ...
介绍 在不同的系统中建立动态链接库的方法有很大的差别,这主要是因为每个系统对动态链接库的看法和实现并不相同,以及编译器对动态链接库支持的选项也不太一样。对于开发人员,如果尝试将使用动态库的软件在这些系 ...

gcc -D

gcc -D 【gcc -D】 -D name  Predefine name as a macro, with definition 1.    通常debug和release版的区别就在于是否有DEBUG宏,DEBUG宏可以通过-D选项传递。如:-DDEBUG 参考:   1、http://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/Preprocessor-Options.html#Preprocessor-Options   2、http://blog.csdn.net/blaider/article/details/7043444 ...
最近在看国际化编程 (i18n: internationalization) 的东西,也弄清楚了点字符集有关的一些问题,其实网上的一些牛人已经将字符集、Unicode 等相关的问题说的很清楚了,我在这里引用他们的总结并自己小结一下心得,并且实验一下在编译时,源代码自身的字符集与编译生成工具之间的问题。 locale与字符集 locale,中文有时翻译成“现场”,还不如叫英文的locale好,它的意思是“一套和地域有关的习惯而形成的程序运行上下文”,它由很多方面 (category) 组成,比如:某个地区的人们习惯怎样表示他们的货币金额 (LC_MONETARY) ,是用 "$ ...
1. linux c的时间操作的函数关系图如下:     2. strftime时间格式化的说明如下:   specifier Replaced by Example %a Abbreviated weekday name * Thu %A Full weekday name * Thursday
不从分配的地址开始访问, 希望跳过一些字节, 怎么处理?   如下一段代码正确么(假设文件名为test.c)?   #include <stdio.h> #include <stdlib.h> int main(void) { void *p = malloc(20); printf("%p\n", p); char *t = (char *)(p + 1); printf("%p\n", t); free(p); return 0; }  使用gcc -S -masm=intel t ...
1. 摩尔定律(机器计算速度已经越来越快),  大数据(有了数据), 数学模型, 三者加在一起, 能起到质的变化   2. 大数据: 不仅仅是量大, 不仅仅是结构化与非结构化的区别, 需要多维度的数据(例如一个人的细胞, 数据量很大, 但是只是一个样本, 作用应该也不大), 数据越完备越好.   3. 未来机器智能的发展,  可能会2%的人控制98%的人.   4. 机器不会完全替代人, 人类拥有的是丰富的想象力.
直接使用c, 有个好处, 自己可以完全控制内存啊,一切脑海中记住内存及指针, 就很容易知道操作是怎样.   1. 分配一段内存, 这段内存使用什么样的指针操作, 那么对应就是多少字节的操作, 也就是说, 看你怎么去解释 这块内存了.   例如, 若分配给一个10个字节的类型, 如果用一个int类型的指针指向这块内存, 那么一次操作, 就是int的字节的大小, 如果一个struct指向这块内存, 那么一次操作就是针对这个struct的内存的大小, 如果是一个数组指向这块内存,  那么就是连续的这个数组的元素类型的字节了.   2. 怎么改变内存中指针的指向, 进行指针的加减就行了 ...
0. 背景 原子操作就是不可再分的操作。在多线程程序中原子操作是一个非常重要的概念,它常常用来实现一些同步机制,同时也是一些常见的多线程Bug的源头。本文主要讨论了三个问题:1. 多线程程序中对变量的读写操作是否是原子的?2. 多线程程序中对Bit field(位域)的读写操作是否是线程安全的?3. 程序员该如何使用原子操作? 1. 多线程环境下对变量的读写操作是否是原子的? 我们先从一道很热门的百度笔试题讲起。很多人讲不清楚其背后的原理,下面我们就来对它进行一下剖析(其实这个题目有点歧义,后面我们会讲到): 以下多线程对int型变量x的操作,哪几个需要进行同步:( )A. x=y ...
原文地址  作者:Martin Thompson  译者:一粟   校对:无叶,方腾飞 本文我将和大家讨论并发编程中最基础的一项技术:内存屏障或内存栅栏,也就是让一个CPU处理单元中的内存状态对其它处理单元可见的一项技术。 CPU使用了很多优化技术来实现一个目标:CPU执行单元的速度要远超主存访问速度。在上一篇文章 “Write Combing (合并写)”中我已经介绍了其中的一项技术。CPU避免内存访问延迟最常见的技术是将指令管道化,然后尽量重排这些管道的执行以最大化利用缓存,从而把因为缓存未命中引起的延迟降到最小。 当一个程序执行时,只要最终的结果是一样的,指令是否被重排并不重要。 ...
原文地址 译者:无叶 校对:丁一 现代CPU采用了大量的技术来抵消内存访问带来的延迟。读写内存数据期间,CPU能执行成百上千条指令。 多级SRAM缓存是减小这种延迟带来的影响的主要手段。此外,SMP系统采用消息传递协议来 ...
Global site tag (gtag.js) - Google Analytics