我觉得应该加锁。理由如下: 比如说有多个线程都要读一个文件。 先要open 打开一个文件,得到一个fd 对任一个读线程来说操作如下: 1. lseek(fd..)到适当的位置 2. read(fd..) 虽然以上每一个都是原子操作,可是1,2之间是可以中断的。如果线程一lseek了之后,系统暂时挂起线程1,运行线程二,线程也调用lseek。 内核给每一个进程有一个进程描述结构,在linux中task_struct,在FreeBSD中是proc,存放每一个...
by UnixStudier - C/C++ - 2008-08-27 10:26:48 阅读(11723) 回复(12)
一、列出文件列表的ls命令 ls命令(list)是很常用的命令,可以让用户显示目前目录中有哪些文件和子目录。因为ls的参数相当多,但是有些极少在使用,所以这里仅介绍常用的部分: 1、不加任何参数时,显示当前目录的内容。 [root@localhost /root]# ls Desktop 2、-a 显示所有文件和目录(若无此参数,句点开始的文件和目录不会显示出来)。 [root@localhost /root]# ls -a . .bash_logout .Desktop_big5 .gv .tcshrc .. .bash_profile ....
如下代码:
#include
在此仅仅讨论网络设备驱动的一般写法,有关硬件部分的相关代码由于硬件规格不同,予以省略。有什么地方错误,或补充,欢迎大家提出。 1, 驱动模块的加载和卸载 如果网络设备(包括wireless)是PCI规范的,则先是向内核注册该PCI设备(pci_register_driver),然后由pci_driver数据结构中的probe函数指针所指向的侦测函数来初始化该PCI设备,并且同时注册和初始化该网络设备。 如 果网络设备(包括wireless)是PCMCIA规范的,则先是...
linux高级应用之IPTABLES 实例分析 #------------------------------- ACCEPT IP ------------------------------- iptables -F #首先我们知道 -F 是清除的意思,所以第一条的作用就是把 FILTRE TABLE 的所有链的规则都清空 iptables -A INPUT -s 172.20.20.1/32 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT #在 FILTER TABLE 的 INPUT 链 匹配源地址是172.20.20.1的主机,状态分别是NEW,ESTABLISHED,RELATED 的都放...
利用TC进行流量控制(Qos) (2006-12-13) 姜道友 前言: 我看到网络上关于linux系统中的流量控制文章很多不实用,即使参考也不能很快编写流量控制规则,且有很多错误。之前我也写过一篇文章,被很多网站引用,为感谢对我的支持,我把一个实例编写出来,供大家参考和学习(绝对实用!,绝对精华!大家可以把网上其它人的文章和我的文章比较一下就知道了!) 需求: 目前公司专线带宽为4M,上下行对等,因近期内部人员使用P2...
利用TC进行流量控制(Qos) (2006-12-13) 姜道友 前言: 我看到网络上关于linux系统中的流量控制文章很多不实用,即使参考也不能很快编写流量控制规则,且有很多错误。之前我也写过一篇文章,被很多网站引用,为感谢对我的支持,我把一个实例编写出来,供大家参考和学习(绝对实用!,绝对精华!大家可以把网上其它人的文章和我的文章比较一下就知道了!) 需求: 目前公司专线带宽为4M,上下行对等,因近期内部人员使用P2...
下面是我服务器的crontab文件设置,但是不知道是否正确,请大家帮忙指点一二。 */5 * * * * tar -zcvf /usr/local/backups/daily/etc.tar.gz /etc (每五分钟备份/etc 目录一次,并且把输出的信息和错误信息输出到屏幕上) */5 * * * * tar -zcvf /usr/local/backups/daily/etc.tar.gz /etc > /dev/null 2>&1(每五分钟备份/etc 目录一次,但是不把输出的信息和错误信息输出到屏幕上,而是丢到linux回收站,但是备份/etc的数据仍然还...
常受到在Redhat linux 9 上配置DNS困扰的朋友,请参考: 20041230 config the new DNS for step.com in linux9 Domain step.com nameserver 192.168.192.8 search step.com bind 9.2.1 [root@localhost named]# pwd /var/named [root@localhost named]# ls 192.168.192.in-addr.arpa named.ca named.pid localhost.zone named.local step.com [root@localhost named]# more /etc/named.conf // generated ...