
Linux
文章平均质量分 69
csc_csc_csc
这个作者很懒,什么都没留下…
展开
-
Linux--原始套接字
原始套接字可以用来自行组装IP数据包,然后将数据包发送到其他终端。必须在管理员权限下才能使用原始套接字。(总结自《UNIX网络编程 卷1:套接字联网API》) (1)原始套接字的创建 int sockfd = socket (AF_INET, SOCK_RAW, IPPROTO_xxx);后面的xxx可以是ICMP,UDP,TCP等。 可原创 2011-11-20 13:02:17 · 3656 阅读 · 0 评论 -
Unix(Linux)中的原子操作
下面的文章是通过学习《Unix环境高级编程》总结的,内容摘抄或改自原书。提到原子操作,首先想到的是这个操作是不可分割,不可中断的。在多进程(线程)过程中经常会出现写文件冲突这种头疼的情况。Unix(Linux)中定义的原子操作能够解决这类的冲突。原子操作指的是由多步组成的操作,如果该操作原子的执行,则或者执行完所有步,或者一步也不执行,不可能只执行所有步的一个子集。下面通过Un原创 2012-03-17 16:22:13 · 4496 阅读 · 2 评论 -
Linux下C++使用TinyXML解析XML文件
最近的由于项目需要解析XML文件,偷懒在网上找了一下开源的解析XML的源码学习了一下。发现一个上手很快,简单的开源解析XML的项目TinyXML。TinyXML可以解析UTF-8编码格式的DOM标准的XML文件。他不能够解析DTDs (Document Type Definitions) or XSLs (eXtensible Stylesheet Language)。TinyXML主页:原创 2012-03-19 19:22:40 · 5868 阅读 · 2 评论 -
可重入函数与不可重入函数
可重入函数和不可重入函数说起来有点拗口,其实写过多进程(线程)程序的人肯定很快就能明白这两种函数是个神马东西。下面是我对这两个函数的理解: 可重入函数可以理解为是能被中断的函数,并且它被中断返回后也不会出现什么错误。 不可重入函数可以理解为如果函数被中断的话,就会出现不可预料的错误。这是因为函数中使用了一些系统资源,比如全局变量区,中断向量表之类的。比如多个进程同时原创 2012-03-23 00:48:13 · 1652 阅读 · 1 评论 -
Linux下Eclipse集成SVN
Eclipse一般自带CVS,要想使Eclipse支持SVN,需要安装相应的插件。(1)首先下载插件Subclipse 下载路径为:http://www.easyeclipse.org/site/plugins/subclipse.html 下载完成后,将features和plugins文件夹中的内容分别拷入eclipse所在的对应的文件夹中。原创 2012-04-09 16:11:52 · 4411 阅读 · 0 评论 -
Linux下安装使用mysql connector(C++)
(1)使用C++版本的mysql connector首先需要安装和编译boost库。 可以在boost官网上下载源文件,自己进行编译。也可以直接使用命令下载和编译,具体命令为: apt-get install libboost-dev libboost-dbg libboost-doc bcp libboost-*(2)然后需要下载mysql connector的头文件原创 2012-04-17 10:07:54 · 16592 阅读 · 5 评论 -
setjmp和longjmp
此文是学习 C专家编程 中的笔记。setjmp和longjmp是C语言所独有的,它们部分弥补了C语言有限的转移能力。函数说明(来自wiki百科):int setjmp(jmp_buf env)建立本地的jmp_buf缓冲区并且初始化,用于将来跳转回此处。这个子程序保存程序的调用环境于env参数所指的缓冲区,env将被longjmp使用。如果是从setjmp直接调用返原创 2012-05-20 11:14:40 · 6104 阅读 · 1 评论 -
Ubuntu下安装和配置ANT
(1)手动安装 首先需要在Apache官网下载Ant,地址为:http://ant.apache.org/bindownload.cgi 然后将下载后的文件进行解压,然后将解压后的文件放到 /usr (这个路径是自己定义)下。 最后配置环境变量,你首先需要确认已经安装了Java环境。在shell中输入: sudo vim /etc/原创 2012-08-19 22:52:26 · 13179 阅读 · 0 评论 -
利用Github进行版本管理
(1)最近需求一个个人的代码管理工具,之前没有接触过Github,所以想通过这个机会学习一个Github,比较囧的是,刚刚注册就被封了,幸好有国内大牛们的声援,使得Github重新解封。今天下午看了一些Github相关的文档,配置了一下,总结成博客。 对github的了解还处于入门阶段。希望各路大神指点迷津……(2)这里直接给出工程性的配置文档,对于github的原创 2013-01-28 20:57:13 · 6171 阅读 · 2 评论 -
代码实现判断主机字节序(大端 or小端 )
字节序有两种表示方法:大端法(big ending),小端法(little ending)。网络字节序采用的是大端法。主机字节序不同的CPU采用的方法不一样,可以通过代码来查看自己主机的字节序。大端法:高位字节排放在内存低地址端,低位字节排放在内存的高地址端。小端法:低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。看一个unsigned short 数据,它占2个原创 2012-03-26 21:18:33 · 7145 阅读 · 2 评论 -
通过共享内存和信号量实现进程间的通信
一:共享内存相关概念和使用函数:共享内存是在多个进程之间共享和传递数据的一种方式。它允许两个不相关的进程访问同一个逻辑内存,共享内存是在两个正在运行的进程之间传递数据的一种非常有效的方式。 共享内存是由IPC为进程创建的一个特殊的地址范围,它将出现在该进程的地址空间中。其他进程可以将同一段共享内存连接到他们自己的地址空间中。所有进程都可以访问共享内存的地址。如果一个进程向共享内存写入了原创 2011-11-30 16:51:08 · 4572 阅读 · 0 评论 -
C\C++ 获取当前路径
获取当前工作目录是使用函数:getcwd。cwd指的是“current working directory”,这样就好记忆了。函数说明: 函数原型:char* getcwd(char* buffer, int len); 参数:buffer是指将当前工作目录的绝对路径copy到buffer所指的内存空间, len是buffer的长度。 返回值:获取成功则返原创 2011-12-05 16:22:28 · 77121 阅读 · 5 评论 -
Linux分区和挂载(mount命令的学习)
当Windows系统出现问题的时候,可能需要重装系统,这个时候我们往往会使用系统盘将系统重新安装在C盘上,其他盘上的文件都没有受到重装系统的影响,这就是分区的好处之一。同样,在Linux中也需要分区,但是Linux中对于分区的表示方式与Windows并不一样。下面将以我的电脑为例,讲述Liunx的分区方法并且通过讲述Linux的启动过程来了解Linux系统和挂载。(本文章适合初学Linux的同学学原创 2012-02-14 15:00:35 · 31368 阅读 · 0 评论 -
Linux 下socket编程客户端与服务端代码
客户端代码:/* client */#include #include #include #include #include #include #include #include #include #define PORT 8848#define MAXDATASIZE 100int main(int argc, char *argv[]){ char h转载 2012-02-14 15:06:22 · 10189 阅读 · 0 评论 -
Linux用户管理学习笔记
Linux安全系统的核心是用户账户,Linux对于每个账户的权限都有严格的控制。每个用户有一个UID(ID具有唯一性)。下面首先学习一下与用户账户有关的配置文件:(1)/etc/passwd文件:root:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/bin/shbin:x:2:2:bin:/bin:/bin/原创 2012-02-14 19:23:34 · 1529 阅读 · 0 评论 -
shell 脚本初探基本脚本编译
才开始学习shell脚本,这篇文章是写给像我一样想接触shell脚本的菜鸟,迅速了解简单的shell脚本,请高手绕道而行……(1)创建脚本文件创建脚本文件其实就是创建一个文本文件,跟编写C类似,按照他的语法结构组织你想要的脚本就可以了。另外在编写脚本的时候建议使用vi,这样既可以联系编写脚本,又可以练习vi使用……一举两得!首先看第一条规则:创建shell脚本时,必须在文件的第一行指明原创 2012-02-16 12:29:26 · 15997 阅读 · 1 评论 -
Ubuntu 环境变量文件介绍
Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量。所以管理环境变量的文件也分为系统级和用户级的,下面贴一个网上找到的讲的比较明白的文件介绍(略作修改)[1]:系统级:/etc/profile:该文件是用户登录时,操作系统定制用户环境时使用的第一个文件,应用于登录到系统的每一个用户。原创 2012-02-15 16:50:11 · 9466 阅读 · 1 评论 -
Github使用gitignore忽略增加指定文件
(1).gitignore介绍 在工程实现过程中,会生成一些中间文件,或者在项目中的部分文件是不需要进行版本管理的。对于这些文件应该对于Github来讲是透明的。Github提供这种功能,可以自己指定哪些文件可以不被管理。具体方法是在版本管理的根目录下(与.git文件夹同级)创建一个 .gitignore(gitignore是隐藏文件,所以前面有个点)原创 2013-01-29 20:36:15 · 83322 阅读 · 6 评论