1 引言 不带缓冲区的I/O(unbuffered I/o)是指每个read 和 write 都调用内核中的一个系统调用,这些不带缓冲区的I/O 不是ISO C 的组成部分。2 文件描述符 每个打开的文件都通过文件描述符引用,文件描述符是一个非负整数。open 和 create 函数返回的文件描.....
分类:
其他好文 时间:
2014-11-02 22:13:44
阅读次数:
238
一个例子明白发送缓冲区、接受缓冲区、滑动窗口协议之间的关系。在上面的几篇文章中简单介绍了上述几个概念在TCP网络编程中的关系,也对应了几个基本socket系统调用的几个行为,这里再列举一个例子,由于对于每一个TCP的SOCKET来说,都有一个发送缓冲区和接受缓冲区与之对应,所以这里只做单方向jiāo...
分类:
其他好文 时间:
2014-11-02 18:08:34
阅读次数:
133
4.4 从请求中打印出按键信息4.4.1 从缓冲区中获得KEYBOARD_INPUT_DATA 请求完成后,读到的信息在Irp_AssociatedIrp.SystemBuffer中。这里需要介绍一下这个缓冲区中的数据格式。这个缓冲区中可能含有n个KEYBOARD_INPUT_DATA 结...
分类:
其他好文 时间:
2014-11-02 12:06:34
阅读次数:
304
在进行多线程编程的过程中,线程间的同步与互斥是件需要认真考虑的关键点,而生产者与消费者就是线程间同步的典型例子:若干个生产者在生产产品,若干个消费者同时消费这些物品,保证多个生产者和多个消费者能并发或并行(关于并行与并发的区别以及多线程编程的一些基本概念,可以参考这篇博文:多线程初步)执行。解决生产者与消费者的典型方法是设立一个产品缓冲区,然后多个生产者与消费者互斥的访问该缓冲区。...
分类:
其他好文 时间:
2014-11-01 23:20:41
阅读次数:
406
1 问题在后台领域,经常用python做一些简单服务,实现起来速度较快、变化较灵活,相比C++,成本要低很多。作为后台服务,在观察服务运行情况时,都希望服务能够实时输出日志数据,以便观察。之前我用python写的一个服务,发现就没有实时把数据写到磁盘,导致在观察数据时,发现实际上某个行为已经执行成功...
分类:
编程语言 时间:
2014-11-01 20:30:26
阅读次数:
233
场景描述:内存中的高速缓冲区中的脏数据过多,占用了内存,在同步到磁盘的过程中,出现IO的瓶颈,无法进行数据的刷新,导致系统异常,这个问题一直都没有得到解决。摘自:eros的linux平台技术资料库我们在磁盘写操作持续繁忙的服务器上曾经碰到一个特殊的性能问题。每隔30秒,..
分类:
其他好文 时间:
2014-10-31 15:59:20
阅读次数:
310
Linux系统编程(第2版)
跳转至:
导航、
搜索
目录
1
入门和基本概念2
文件I/O3
缓冲I/O4
高级文件I/O5
进程管理6
高级进程管理7
线程8
文件和目录管理9
内存管理10
信号11
时间(这里谈不上系统编程了,就是C库API)12
附录A C语言的GCC扩展13
附录B 参考书目
...
作者:bystander博客:http://leaver.me论坛:法克论坛目录1.大小写绕过2.简单编码绕过3.注释绕过4.分隔重写绕过5.Http参数污染(HPP)6.使用逻辑运算符or /and绕过7.比较操作符替换8.同功能函数替换9.盲注无需or和and10.加括号11.缓冲区溢出绕过1....
分类:
数据库 时间:
2014-10-31 15:27:49
阅读次数:
307
一.定长数组
如果需要一个长度不变的数组,可以使用Scala中的Array.
val nums = new Array[int](10)
val s = Array("Hello","world")
二.变长数组:数组缓冲
1.
val b = ArrayBuffer[int]()
2.追加元素
b +=(1,2,3,...
分类:
编程语言 时间:
2014-10-31 10:13:35
阅读次数:
238
redis的基本数据结构是动态数组一、c语言动态数组先看下一般的动态数组结构struct MyData { int nLen; char data[0];}; 这是个广泛使用的常见技巧,常用来构成缓冲区。比起指针,用空数组有这样的优势: 1.不需要初始化,数组名直接就是所在的偏移2.不...
分类:
其他好文 时间:
2014-10-30 20:48:14
阅读次数:
205