logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

linux下write操作原理、错误原因及处理方法

1. write函数介绍(1)文件I/O与标准I/O之争:      根据《UNIX环境高级编程》中介绍,文件I/O与标准I/O之间的差别主要有以下几点:其一,文件I/O是在系统的内核中实现的,而标准I/O函数则提供了文件I/O函数的一个完整的带缓冲的替代品。因此说,文件I/O是一种较低级的I/O操作函数,而标准I/O则是一种相对较高的I/O。标准I/O函数将打开的文件模型抽象成“文件流”

#linux#网络#apache +1
linux内核与用户之间的通信方式——虚拟文件系统、ioctl以及netlink

本文尝试去阐述内核与用户空间之间的通信接口:虚拟文件系统、ioctl以及netlink.文中所有的结构及代码全来自于Linuxkernel 2.6.34.一、虚拟文件系统      proc文件系统,通常是挂载在/proc,允许内核以文件类型形式向用户提供内部信息,但是值得注意的是里面的文件目录不能被写入,即用户不能添加或者删除目录中的任何目录。同时,内核也提供了一个可供用户配置

Linux文件锁

翻阅参考资料,你会发现文件锁可以进行很多的分类,最常见的主要有读锁与写锁,前者也叫共享锁,后者也叫排斥锁,值得注意的是,多个读锁之间是不会相互干扰的,多个进程可以在同一时刻对同一个文件加读锁;但是,如果已经有一个进程对该文件加了写锁,那么其他进程则不能对该文件加读锁或者写锁,直到这个进程将写锁释放,因此可以总结为:对于同一个文件而言,它可以同时拥有多个读者,但是在某一时刻,他只能拥有一个写者。

#linux
GCC扩展符(#,##)

先来说说这两个扩展符的各自用处吧,“#”是将宏字符串化(Stringification),“##”是将##左右两边的标签组合在一起(token pasting or token concatenation),下面从两个简单例子着手:#define SSVAR(X,Y) const char X[]=#YSSVAR(InternetGatewayDevice, InternetGa

TCP存活检测机制

在阐述TCP提高检测连接存活状态之前,试想为什么在TCP协议设计以及实际开发中,为什么不提供即时的网络连接中断的通知呢?这方面主要有两个方面的原因,其一是这样会消耗掉大量的网络带宽,试想若存在着大量的不成熟的网络应用程序,网络带宽一定会消耗殆尽;其二则要从TCP设计之初说起,因为当年美国国防部设计TCP就是为了让在网络中断的情况下仍然通过其它途径维持通信的能力。目前Linux系统提供了KEEP_A

#网络
到底了