linux
csleeping
linux C++程序员
展开
-
linux学习路线
写一下最近个人的linux学习路线,学完后再好好参考其他人的:1.《Linux程序设计》- 靠它来入门,然后装一个linux系统,学习shell(bash)和linux C,把基础打牢;2. 《深入理解Linux内核》和《Linux内核设计与实现》:后者我已经粗粗看过一遍,值得细看,前者必须尽快看完;3. 《Linux设备驱动设计》:必买必看,实用性强;4.《Adv转载 2014-10-08 20:21:52 · 298 阅读 · 0 评论 -
git 远程分支创建与推送
原文地址:http://hi.baidu.com/lingzhixu/blog/item/4a9b830bb08a329fe850cd5b.html本地分支的创建本地分支的来源为执行git checkout -b 的那个分支例如现在有两个分支,master和b1master 分支下有一个commit:commit1: add test1.cb1分支下有两个commit转载 2017-01-20 10:34:42 · 511 阅读 · 0 评论 -
由STL map调用clear后,内存不返还给操作系统的问题出发,探讨glibc malloc/free行为
1. 问题我们的程序有几十个线程,每个线程拥有一个std::map,每个线程都要向自己的std::map中插入大量的数据,但每个数据只有几十字节;当使用完std::map,调用map.clear(),删除map里的所有元素,发现std::map所占内存没有返还给操作系统;甚至std::map析构后,内存仍然没有返还给操作系统(map析构不返还内存,不一定100%重现)。了解了g转载 2016-11-25 17:48:35 · 3868 阅读 · 1 评论 -
C++11线程函数类型错误
使用C++11的线程库写程序的时候,使用类的成员函数作为线程函数,类成员函数形式大概如下: class A { public: void foo() { cout 省略其他代码。。。原创 2016-12-12 16:39:54 · 3283 阅读 · 0 评论 -
对于linux socket与epoll配合相关的一些心得记录
原文地址:http://blog.csdn.net/pbymw8iwm/article/details/17082167对于linux socket与epoll配合相关的一些心得记录没有多少高深的东西,全当记录,虽然简单,但是没有做过测试还是挺容易让人糊涂的int nRecvBuf=32*1024;//设置为32Ksetsockopt(s,SOL_SOCKET,转载 2016-11-29 16:27:19 · 301 阅读 · 0 评论 -
linux下普通用户root权限
linux中,普通用户可以使用sudo执行只有root用户才能执行的命令,具体可参考网上的sudoer文件配置策略,我是在/etc/sudoers.d目录下添加一个文件,/etc/sudoers文件会包含/etc/sudoers.d目录下的文件并执行。但是执行是得sudo执行相应命令,从而发生了一些问题: 最主要的是sudo会重置环境变量,此情况可修改/etc/sudoers中Defau原创 2016-08-30 18:11:28 · 1248 阅读 · 0 评论 -
在服务器上创建git仓库
一共分3步: 1、根据已有仓库创建一个裸仓库: git clone --bare project_name remote_name.git(project_name为项目名,该目录下应该有.git目录存在,remote_name.git为服务器上以后工人下载的名称) 2、拷贝裸仓库到服务器: scp remote_原创 2016-03-06 10:37:02 · 726 阅读 · 0 评论 -
UTF-8和中文字符编码(GB2312、GBK、GIB5、GB18030)的识别
1、编码方式介绍了解一种字符集编码主要是要了解该编码的编码范围,编码对应的字符集(都包含哪些字符),和其他字符集编码之间的关系等。ASCIIASCII码是7位编码,编码范围是0x00-0x7F。ASCII字符集包括英文字母、阿拉伯数字和标点符号等字符。其中0x00-0x1F和0x7F共33个控制字符。[1]只支持ASCII码的系统会忽略每个字节的最高位,只认为低7位转载 2016-01-18 11:34:08 · 9477 阅读 · 0 评论 -
Centos7日志服务器配置
客户端配置格式客户端需修改文件位于/etc/rsyslog.conf只需要把尾部#*.* @@remote-host:514删除#,并把@@替换为@,remote-host替换为日志服务器主机IP即可; 注:日志默认使用udp协议,使用@@则使用tcp协议。 服务器配置格式服务器端修改修改/etc/rsyslog.conf文件以及/etc/sysconfig/rsysl原创 2015-11-30 09:54:30 · 16134 阅读 · 0 评论 -
gdb调试多进程和多线程命令
1. 默认设置下,在调试多进程程序时GDB只会调试主进程。但是GDB(>V7.0)支持多进程的分别以及同时调试,换句话说,GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值:parent)和detach-on-fork(默认值:on)即可。 follow-fork-mode detach-on-fork 说明parent转载 2014-10-09 20:56:13 · 354 阅读 · 0 评论 -
linux 有名管道(FIFO)
无名管道应用的一个重大限制是它没有名字,因此,只能用于具有亲缘关系的进程间通信,在有名管道(named pipe或FIFO)提出后,该限制得到了克服。FIFO不同于管道之处在于它提供一个路径名与之关联,以FIFO的文件形式存在于文件系统中。这样,即使与FIFO的创建进程不存在亲缘关系的进程,只要可以访问该路径,就能够彼此通过FIFO相互通信(能够访问该路径的进程以及FIFO的创建进程之间),因此,转载 2014-10-09 19:29:15 · 394 阅读 · 0 评论 -
linux 线程学习之条件变量
互斥锁:用来上锁。条件变量:用来等待,当条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。 函数介绍: 1.名称:pthread_cond_init目标:条件变量初始化头文件:#include 函数原形:int pth转载 2014-10-10 14:09:38 · 331 阅读 · 0 评论 -
Linux netstat命令详解
简介Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义执行netstat后,其输出结果为Active Internet connections (w/o servers)Proto Re转载 2014-10-10 11:25:42 · 389 阅读 · 0 评论 -
Linux tcpdump命令详解
简介用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 实用命令实例默认启动tc转载 2014-10-10 11:24:07 · 314 阅读 · 0 评论 -
Linux后台开发应该具备技能
Linux后台开发应该具备技能一、linux和os:1、命令:netstat tcpdump ipcs ipcrm 这四个命令的熟练掌握程度基本上能体现实际开发和调试程序的经验2、cpu 内存 硬盘 等等与系统性能调试相关的命令必须熟练掌握,设置修改权限 tcp网络状态查看 各进程状态 抓包相关等相关命令 必须熟练掌握3、awk sed需掌握4、共享内存的转载 2014-10-10 11:05:28 · 291 阅读 · 0 评论 -
初窥Linux 之 我最常用的20条命令
玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。当然你也可以在使用时去找一下man,他会帮你解决不少的问题。然而每个人玩Linux的目的都不同,所以他们常用的命令也就差异非常大,而我主要是用Linux进行C/C++和shell程序编写的,所以常用到的命令可以就会跟一个管理Li转载 2014-10-10 11:12:54 · 458 阅读 · 0 评论 -
通过成员变量地址获取结构体地址
Linux中有一个宏[cpp] view plaincopyprint?#define container_of(ptr,type,member) 实现略 实现了通过成员变量地址获取结构体地址的功能。今天我想好好想想这个实现的原理是怎么来的。先定义一个结构体吧[cpp] view plai转载 2014-10-09 14:01:45 · 549 阅读 · 0 评论 -
git本地分支添加到远程分支和远程分支的下载
git checkout -b test1在本地新建一个分支test1,然后git push -u就可以把本地的test1分支添加到远程仓库,git branch -a可以看见所有本地分支和远程分支的具体情况。 使用git checkout -b test1 git@:可以clone test1分支到本地,其他分支不会clone到本地。原创 2016-08-31 11:18:06 · 428 阅读 · 0 评论