摘要:
为什么选择多线程?而不是多进程?比起多进程来说,线程间通信简单(全局变量就可以了),而多进程之间的通信相对而言更繁琐一些,呵呵...我们的问题如何产生的?问题的根本原因是什么?事情是这样的,模块之间需要通信,我们用了openwrt的开源代码ubus做消息转发在我们的每个需要通信的模块中创建了一个线程... 阅读全文
摘要:
kuang:~$ tr --helpUsage: tr [OPTION]... SET1 [SET2]Translate, squeeze, and/or delete characters from standard input,writing to standard output. -c, -... 阅读全文
摘要:
Linux kernel version: 3.18.14 file: net/ipv4/netfilter/iptables_filter.c先贴出重要的全局变量struct xt_table packet_filter:#define FILTER_VALID_HOOKS ((1 regis... 阅读全文
摘要:
Linux有各种XXtables, 比如 iptables ebtables arptables用户空间:iptables ebtables arptables这些用户层的工具会调用setsockopt/getsockopt来和内核通信nf_sockopts是在iptables进行初始化时通过nf_... 阅读全文
摘要:
共享内存时IPC形式中最快的一种。POSIX 共享内存posix.1提供了两种在无亲缘关系的进程间共享内存的方式(1)内存映射文件:由open函数打开一个文件,由mmap函数把得到的描述符映射到当前进程地址空间中。(2)共享内存区对象:由shm_open打开一个Posix.1 IPC名字(通常是文件... 阅读全文
摘要:
Posix semaphore有名信号量/* sem_open - initialize and open a named semaphore */#include /* For O_* constants */#include /* For mode cons... 阅读全文
摘要:
进程间的互斥,我们可以让这些进程共享某个内存区(mmap实现),然后在该共享内存区中使用某种类型的同步变量但是,fcntl记录上锁往往更容易使用。#include #include int fcntl(int fd, int cmd, ... /* struct flock *arg */ );st... 阅读全文
摘要:
读写锁的分配规则如下:1. 只要没有线程持有某个指定的读写锁用于写,那么任意数目的线程可以持有该读写锁用于读;2. 仅当没有线程持有某个指定的读写锁用于读或者用于写,才能分配读写锁用于写。这样的访问方式也称为共享-独占上锁(shared-exclusion)那么我想到了这样一个场景:线程A要写数据,... 阅读全文
摘要:
线程范围:同一个进程内的多个线程访问一些全局变量时,需要保护好临界区,保证不产生脏数据Linux 中的互斥锁#include pthread_mutex_t fastmutex = PTHREAD_MUTEX_INITIALIZER;pthread_mutex_t recmutex = PTHREA... 阅读全文
摘要:
BOM也是Unicode标准的一部分,有它特定的适用范围。通常BOM是用来标示Unicode纯文本字节流的,用来提供一种方便的方法让文本处理程序识别读入的文本文件是哪个Unicode编码(UTF-8,UTF-16BE,UTF-16LE)Windows相对其他系统,对BOM处理比较好,是因为Windo... 阅读全文