摘要:linux 环境下 用 clock_t发现不准。 换用
阅读全文
摘要:nc is NetCat.素以短小精悍著称的网络工具包。主要用来开放的扫描端口(黑客或者OSAdmin的最爱),不同主机之间传输文字 | 文件。 http://blog.csdn.net/zhangxiao93/article/details/52705642 其它用途有: 使用-t选项模拟Teln
阅读全文
摘要:一.概述 barrier(屏障)与互斥量,读写锁,自旋锁不同,它不是用来保护临界区的。相反,它跟条件变量一样,是用来协同多线程一起工作!!! 条件变量是多线程间传递状态的改变来达到协同工作的效果。屏障是多线程各自做自己的工作,如果某一线程完成了工作,就等待在屏障那里,直到其他线程的工作都完成了,再一
阅读全文
摘要:自旋锁与互斥量功能一样,唯一一点不同的就是互斥量阻塞后休眠让出cpu,而自旋锁阻塞后不会让出cpu,会一直忙等待,直到得到锁!!! 自旋锁在用户态使用的比较少,在内核使用的比较多!自旋锁的使用场景:锁的持有时间比较短,或者说小于2次上下文切换的时间。 自旋锁在用户态的函数接口和互斥量一样,把pthr
阅读全文
摘要:自述 上面的介绍的互斥量,典型的消费者-生产者模型有一个问题,就是每一次生产者函数都要 加锁-查看money-解锁 ,这么一整流程即使在money !=0 的情况下依然要经历这个流程,造成资源浪费。 这里引入条件变量,当main中直到money=0的时候,通知生产者直接进入互斥资源生产money。
阅读全文
摘要:读写锁对比互斥锁好处是: 1)高并行性,读写锁根据线程对资源的操作类型分为 读 和 写,分别上锁,能够提高访问效率。而不是像互斥锁一样,不分读还是写操作,上锁之后其他进程都不能访问。如果当前临界区上了读锁,之后的写锁会阻塞。知道获得临界区,那么之后的读锁也会阻塞,可以防止写锁饥饿。 2)如果写锁占领
阅读全文
摘要:四种 IO 模型: 首先需要明确,IO发生在 用户进程 与 操作系统 之间。可以是客户端IO也可以是服务器端IO。 阻塞IO(blocking IO): 四种 IO 模型: 首先需要明确,IO发生在 用户进程 与 操作系统 之间。可以是客户端IO也可以是服务器端IO。 阻塞IO(blocking I
阅读全文
摘要:一 GDB调试Core_dump 1 设置core文件大小为无限制: 2 使用gcc -g 编译程序(-g 编译器将符号表(对应于程序的变量和代码行的内存地址列表)保存在生成的可执行文件中): 2 运行程序 ./a.out,产生段错误,生成core文件。 3 使用gdb查看core文件 : gdb
阅读全文
摘要:处理第二行 grep:提取大写字母 o: 不显示非结果 tr:删除换行 Cut:截取1-100个字符 rev:逆序 断断续续搞了好长时间。最后还是解决了;man是个好东西~ 好人? 或者还有一种找到第二行的方法 : 那第二种方法: head -n 2 afile | tail -n 1 | grep
阅读全文
摘要:先看一个例子: 输出: 输出: 区别:管道命令是将前面命令的输出作为后面命令的标准输入 -》所以第二条命令输出了在 所有文件名中包含a的文件名 xargs命令将标准输入作为命令的参数 -》导致的结果是:第一条命令grep a 在所有的文件中搜索包含a的文件 再举一个例子:
阅读全文
摘要:IPC(InterProcess Communication)进程间通信.为啥没有进程间通信,这是因为进程间都是同步的关系,不需要通信. 1.管道 1.1管道特点: (1)半双工的(即数据只能在一个方向上流动),某些系统提供全双工的管道. (2)管道只能在具有公共祖先的两个进程之间使用.通常,一个管
阅读全文
摘要:第十章 信号 信号是软中断,提供了一种处理异步事件的方法。例如,终端用户键入终端键,会通过信号机制停止一个进程,或及早终止管道中的下一个程序。 每个信号都有一个名字,SIG开头。例如: SIGABRT:夭折信号,当进程调用abort函数时产生。 SIGALRM:闹钟信号,由alarm函数设定时器超时
阅读全文
摘要:获取进程的PID(process ID) 获取线程的TID(thread ID) 1)gettid或者类似gettid的方法 :获取内核中真实的线程ID 2)直接调用pthread_self() : posix描述的线程ID。 在POSIX线程库下每一线程也有一个ID,类型pthread_t,就是通
阅读全文
摘要:关于setjmp函数和longjmp函数有话要说,是UNIX高级环境变成看到了10.10信号那章用到了,研究一下,这里作为补充。 setjmp(jmp_buf env_buf) 函数可以将当前的运行环境存入jmp_buf变量中,函数默认返回值是返回0。直到longjmp修改该值(!0)后会调回set
阅读全文
摘要:进程关系 当子进程终止时,父进程得到通知并能取得子进程的退出状态。终端登录: 早起UNIX系统通过哑终端登录,本地的终端 or 远程的终端 。主机上链接的终端设备是固定的,所以同时登录数也就有了已知的上限。直到出现了映射图形终端的出现,开发出了窗口系统,它向用户提供了与主机系统进行交互的新方式。(通
阅读全文
摘要:进程控制进程标识: 每一个进程都有一个非负整型表示的唯一进程ID。虽然唯一,但是ID可以复用。当一个进程结束后,其进程ID会被延迟复用。 ID=0的进程通常是调度进程,常被称作交换进程(swapper)。改进程是内核的一部分,它不执行任何磁盘上的程序,因此也被成为系统进程。 ID=1的进程通常是in
阅读全文
摘要:系统数据文件和信息 数据文件都是ASCII文本文件,并且使用标准I/O库读这些文件,例如口令文件/etc/passwd和组文件/etc/group就是经常被多个程序频繁使用的两个文件。 口令文件: /etc/passwd,包含用户名,加密口令等字段,字段之间用:分隔。关于这些登录项: (1)通常有一
阅读全文
摘要:进程环境main函数: C程序总是从main函数开始执行。main函数原型是: int main(int argc, char *argv[]); 当内核执行C程序时(使用一个exec函数),在调用main前先调用一个特殊的启动例程。可执行程序文件将此启动例程指定为程序的起始地址--这是由链接编译器
阅读全文
摘要:标准I/O库流和FILE对象: 所有I/O函数都是围绕文件描述符的。当打开一个文件时,即返回一个文件描述符,然后该文件描述符就用于后续的I/O操作。当用标准I/O库打开或者创建一个文件时,我们已使得一个文件与流关联。 流的定向:决定了所读、写的字符是单字节还是多字节(宽)字符集。 freopen函数
阅读全文
摘要:函数stat fstat fstatat 和 lstat stat函数使用最多的地方可能就是ls -l 命令,用其可以获得有关一个文件的所有信息。 文件类型: (1)普通文件 (2)目录文件 (3)块特殊文件。这种类型的文件提供对设备带缓冲的访问,每次访问以固定长度为单位进行。 (4)字符特殊文件:
阅读全文