编程杂记
文章平均质量分 70
编程相关杂记
callinglove
从事Linux C/C++/Python开发近10年,擅长相关环境的搭建
展开
-
Linux man手册一篇通
linux man手册一篇通,man手册章节类型介绍,章节组成说明,常用系统man手册的安装以及man命令常用场景说明原创 2023-05-11 20:35:42 · 1126 阅读 · 1 评论 -
linux应用编译链接运行时头文件以及库的查找
编译时与运行时库的路径运行时动态库的路径搜索顺序编译目标代码时指定的动态库搜索路径(指的是用-wl,rpath或-R选项而不是-L);gcc -Wl,-rpath,/home/arc/test,-rpath,/usr/local/lib test.c环境变量LD_LIBRARY_PATH指定的动态库搜索路径;export LD_LIBRARY_PATH=/root/test/env/lib./原创 2015-11-06 13:47:41 · 9293 阅读 · 2 评论 -
linux线程间同步(1)互斥锁与条件变量
线程的最大特点是资源的共享性,但资源共享中的同步问题是多线程编程的难点。linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量和信号量以及读写锁。互斥锁(mutex)互斥锁,是一种信号量,常用来防止两个进程或线程在同一时刻访问相同的共享资源。可以保证以下三点:原子性:把一个互斥量锁定为一个原子操作,这意味着操作系统(或pthread函数库)保证了如果一个线程锁定了一个互斥量,没有其他原创 2015-06-26 14:45:18 · 2247 阅读 · 0 评论 -
共享内存:mmap函数实现
内存映射的应用:以页面为单位,将一个普通文件映射到内存中,通常在需要对文件进行频繁读写时使用,这样用内存读写取代I/O读写,以获得较高的性能;将特殊文件进行匿名内存映射,可以为关联进程提供共享内存空间;为无关联的进程提供共享内存空间,一般也是将一个普通文件映射到内存中。相关API#include <sys/mman.h>void *mmap(void *addr, size_t length原创 2015-07-01 15:04:25 · 5836 阅读 · 2 评论 -
linux线程间同步(1)读写锁
读写锁比mutex有更高的适用性,可以多个线程同时占用读模式的读写锁,但是只能一个线程占用写模式的读写锁。 1. 当读写锁是写加锁状态时,在这个锁被解锁之前,所有试图对这个锁加锁的线程都会被阻塞; 2. 当读写锁在读加锁状态时,所有试图以读模式对它进行加锁的线程都可以得到访问权,但是以写模式对它进行枷锁的线程将阻塞; 3. 当读写锁在读模式锁状态时,如果有另外线程试图以写模式加锁,读写锁通原创 2015-06-26 09:51:28 · 2416 阅读 · 0 评论 -
步入github世界
在源码的世界里,越来越多的优秀源码涌现,开源的世界不但代表他的优秀,也代表了他优秀的传播途径。https://github.com/github自从2008年现世,可谓是后来者居上。开源代码的公开库,优秀程序员的博客园,热心开源的集散地。写书可以从这里集思广益,学习可以从这里入手。于是乎本人作为一个热心观众也注册了一个账号https://github.com/callinglove原创 2014-11-08 16:34:17 · 1008 阅读 · 0 评论 -
Linux SO_KEEPALIVE属性,心跳
TCP自带的keepalive机制原理,及其应用原创 2014-08-05 10:24:34 · 39503 阅读 · 4 评论 -
结构体中的柔性数组
$ ./a.out offsets: i=0; c=4; d=8 a=16 sizeof(struct s)=16Program source#include <stddef.h>#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){ st...原创 2014-04-21 13:47:40 · 955 阅读 · 1 评论 -
线程属性总结
今天面试那哥们问起线程属性,me竟然就说出了一个,囧学习:http://blog.csdn.net/zsf8701/article/details/7842392 http://blog.csdn.net/jxhnuaa/article/details/3254299 http://blog.sina.com.cn/s/blog_9bd573450101hg原创 2014-05-05 22:28:46 · 3426 阅读 · 1 评论 -
linux下调试工具的应用
http://www.ibm.com/developerworks/cn/linux/l-pow-debug/原创 2013-03-15 10:23:41 · 907 阅读 · 0 评论 -
struct linger
Linux下tcp连接断开的时候调用close()函数,有优雅断开和强制断开两种方式。那么如何设置断开连接的方式呢?是通过设置socket描述符一个linger结构体属性。linger结构体数据结构如下: #include struct linger { int l_onoff; int l_linger;};三种断开方式:1. l_onoff = 0转载 2013-03-03 22:31:51 · 1030 阅读 · 0 评论 -
关于linux的进程和线程
关于linux的进程和线程http://kenby.iteye.com/blog/1014039Linux下的多线程编程http://fanqiang.chinaunix.net/a4/b8/20010811/0905001105.html 线程的最大特点是资源的共享性,但资源共享中的同步问题是多线程编程的难点。linux下提供了多种方式来处理线程同步,最常用的是转载 2013-02-21 06:09:38 · 683 阅读 · 0 评论 -
perror()与strerror()的应用及区别
perror() 和 strerror() 以一种直观的方式打印出错误信息,对于调试程序和编写优秀的程序非常有用。下面是perror() 与 strerror() 的使用范例及区别:perror()原型:#include void perror(const char *s);其中,perror()的参数s 是用户提供的字符串。当调用perror()时,它输出这个原创 2012-12-16 15:49:02 · 7571 阅读 · 1 评论 -
git学习总结
txt笔记一篇:git常用命令点击查看以下教程主要参考"Git-tutor(Git使用指南):和http://blog.haohtml.com/archives/9066"实用指南而整理,第3章几乎直接在复制过来的.相关教程:在 CentOS 装 Git:http://blog.haohtml.com/archives/10093在FreeBSD下安装G转载 2012-12-15 19:44:04 · 2578 阅读 · 0 评论