Linux
小鱼儿咕噜咕噜
这个作者很懒,什么都没留下…
展开
-
'holes' in files
Q. What is holes in files? A. (By Andrew Gierth andrewg@microlise.co.uk) The issue of holes in files is thus: Suppose a program creates a new file, seeks to a large offset, and then writes 1 byt原创 2010-01-15 11:10:00 · 552 阅读 · 0 评论 -
进程fork分析;l
网上看到的一个文章,我自己好好分析了下:#include #include #include int main(){ pid_t pid1; pid_t pid2; pid1= fork(); pid2= fork(); printf("pid1:%d, pid2:%d/n", pid1, pid2);}要求如下:已知从这个程序执行到这个原创 2010-01-18 20:08:00 · 1672 阅读 · 0 评论 -
区别之守护进程 孤儿进程 僵尸进程
僵尸进程是 一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。孤儿进程是因为父进程异常结束了,然后被1号进程init收养。守护进程是创建守护进程时原创 2011-09-13 11:51:57 · 6776 阅读 · 2 评论 -
select函数详解
select的机制中提供了一个fd_set的数据结构,实际上是long类型的数组, 每一个数组元素都能与一打开的文件句柄(不管是Socket句柄,还是其他 文件或命名管道或设备句柄)建立联系,建立联系的工作由程序员完成, 当调用select()时,由内核根据IO状态修改fd_转载 2010-04-10 09:30:00 · 5111 阅读 · 0 评论 -
kill的一点总结
2.格式kill [ -s signal | -p ] [ -a ] pid ...kill -l [ signal ]3.参数-s:指定发送的信号。-p:模拟发送信号。-l:指定信号的名称列表。pid:要中止进程的ID号。Signal:表示信号。 kill -0就是不发送任何信号,但是系统会进行错误检查。 所以经常用来检查一个进程是否存在,当进程原创 2011-10-26 10:31:10 · 994 阅读 · 0 评论 -
sigprocmask
【sigprocmask系统调用】功能描述:设定对信号屏蔽集内的信号的处理方式(阻塞或不阻塞)。用法:#include int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);参数:how:用于指定信号修改的方式,可能选择有三种SIG_BLOCK //加入信号到进程屏蔽。SIG_UNBLOC转载 2011-10-26 11:40:51 · 821 阅读 · 0 评论 -
pselect
pselect比select多了个信号屏蔽的功能如果在select运行的时候不想被程序中未知的信号打断出现错误,就需要在SELECT的时候屏蔽不需要的信号int pselect(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, const struct timespec *timeout, const原创 2011-10-26 11:47:42 · 1063 阅读 · 1 评论 -
守护进程的创建
一. 守护进程及其特性 守护进程最重要的特性是后台运行。在这一点上DOS下的常驻内存程序TSR与之相似。其 次,守护进程必须与其运行前的环境隔离开来。这些环境包括未关闭的文件描述符,控制终端,会话和进程组,工作目录以及文件创建掩模等。这些环境通常是守护进程从执行它的父进程(特别是shell)中继承下来的。最后,守护进程的启动方式有其特殊之处。它可以在Linux系统启动时从启动脚本/etc转载 2011-10-26 12:37:24 · 679 阅读 · 0 评论 -
记下几个有用的函数
1:fnmatcharray fnmatch ( string pattern, string string [, int flags])fnmatch() 检查传入的 string 是否匹配给出的 shell 统配符pattern。 此函数对于文件名尤其有用,但也可以用于普通的字符串。普通用户可能习惯于 shell 模式或者至少其中最简单的形式 '?' 和'*' 通配符,原创 2011-12-12 15:29:19 · 671 阅读 · 0 评论 -
strace linux 下程序的系统调用和信号调用跟踪工具
strace 简介strace 命令是一种强大的工具, 能够显示任何由用户空间程式发出的系统调用. strace 显示这些调用的参数并返回符号形式的值. strace 从内核接收信息, 而且无需以任何特别的方式来构建内核. strace 的每一行输出包括系统调用名称, 然后是参数和返回值.调用方法为:调用: strace [ -dffhiqrtttTvxx ] [ -acolumn转载 2012-01-10 10:01:38 · 992 阅读 · 0 评论 -
epoll精髓
在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:#define __转载 2012-01-10 10:10:49 · 640 阅读 · 0 评论 -
两个编译2.4与2.6内核模块
1:首先要确定系统上已经安装了内核头文件 ,在目录:/usr/src/include2:如果没有安装,需要先安装内核头文件,安装方法是下载rpm包:kernel-source.......rpm 然后rpm - ivh kernel-source....rpm3:写好文原创 2011-09-02 11:27:40 · 1097 阅读 · 0 评论 -
一些有用的命令
1:diff查找多个文件间的区别2:wc统计文件的行数netstat -n |wc -l3:PS1修改终端的导航条的显示4:原创 2011-01-21 10:25:00 · 548 阅读 · 0 评论 -
Linux启动过程详解
转帖地址: http://roclinux.cn/?p=1301启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。启动第二步--读取MBR众所周知,硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是51转载 2011-01-24 11:50:00 · 633 阅读 · 0 评论 -
why define size_t ssize_t ?
"William Xuuu" wrote in messagenews:87oefozb8g.fsf@163.com...[color=blue]> Thiss a way of defining size_t and ssize_t in Linux:>> //"linux/types.h"> typedef __kernel_size_t size_t;> typedef __kernel原创 2010-01-18 15:13:00 · 1719 阅读 · 0 评论 -
vim使用技巧
读本文之前请注意:1. 本文的目标是提供一些vim的使用技巧,利用这些技巧可以提高vim的操作效率。部分技巧在vi上也可以使用,但是现在基本上都是用vim了。2. 本文是整理和总结使用技巧,而非讲解vim入门,因此不会涉及最基本的使用,例如如何上移或下移光标,对此类操作请参阅任何一本vim或者vi教程。3. 本文阅读对象是了解了vim的基本操作,而希望高效地利用vim进行工作的人。转载 2010-01-16 16:55:00 · 582 阅读 · 0 评论 -
Linux怎么学
一.为什么要学linux? http://ph4nt0m.net/bbs/showthread.php?threadid=22510 http://ph4nt0m.net/bbs/showthread.php?threadid=857 当然如果没有这种必要,请不要浪费时间 二.起步 你应该为自己创造一个学习linux的环境--在电脑上装一个linux或unix 问题1:版本的选择原创 2010-01-23 20:46:00 · 1651 阅读 · 0 评论 -
exec函数族
1.exec家族一共有六个函数,分别是:(1)int execl(const char *path, const char *arg, ......);(2)int execle(const char *path, const char *arg, ...... , char * const envp[]);(3)int execv(const char *path, char *co原创 2010-01-21 15:05:00 · 5878 阅读 · 0 评论 -
信号量PV操作
引用 阐述P,V原语的理论不得不提到的一个人便是赫赫有名的荷兰科学家 E.W.Dijkstra。如果你对这位科学家没有什么印象的话,提起解决图论中最短路径问题的Dijkstra算法应当是我们再熟悉不过的了。P,V原 语的概念以及P,V操作当中需要使用到的信号量的概念都是由他在1965年提出的。 信号量是最早出现的用来解决进程同步与互斥问题的机制(也可实现进程通信),包括一个称转载 2010-02-25 19:23:00 · 1321 阅读 · 0 评论 -
网卡配置
# Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+DEVICE=eth0 接口名称BOOTPROTO=none 静态配置,若该值为“dhcp”则为动态获得,另外 static也是表示静态ip地址BROADCAST=192.168.10.255 广播地址,通过IP地址和子网掩码自动计算得到HWADDR=00:13:D3:27:9F:80 IPADDR=192转载 2010-08-04 18:31:00 · 680 阅读 · 0 评论 -
Linux查找文件内容的常用命令方法
学习find和grep命令的使用:从文件内容查找匹配指定字符串的行: $ grep "被查找的字符串" 文件名从文件内容查找与正则表达式匹配的行: $ grep –e “正则表达式” 文件名查找时不区分大小写: $ grep –i "被查找的字符串" 文件名查找匹配的行数: $ grep -c "被查找的字符串" 文件名从文件内容查找不匹配指定字符串的行: $ grep –v "被查找的字符串" 文件名从根转载 2010-08-15 10:26:00 · 728 阅读 · 0 评论 -
使用 ipmitool 实现远程管理Dell 系列服务器
<br /> <br />IBM 文档: http://www.ibm.com/developerworks/cn/linux/l-ipmi/index.html<br />ipmi命令收集: http://hi.baidu.com/guizishou/blog/item/d0c2a2440c10d58bb2b7dc29.html<br /> <br /> <br />先贴上网上一般的教程:<br />设置方法:<br /><br /><br />网线一定要插到1号口,因为只有插到1号口远程管理原创 2010-12-15 17:54:00 · 17921 阅读 · 0 评论 -
shell笔记总结
1:实现命令的重定向到变量test=$(ps -A |grep adpush)echo $testif [ "$test" == "" ]; thenecho "no =="elseecho $testfi原创 2010-12-21 15:43:00 · 878 阅读 · 0 评论 -
Crontab实例
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务: my_tag("gg_468_60",1); /sbin/service crond start //启动服务 /sbin/service crond stop //关闭服务 /sbin/service crond restart //重启服务 /sbin/service crond reload //重新载入配置 你也可以将这个服务在系统转载 2011-01-19 10:49:00 · 537 阅读 · 0 评论 -
select、poll、epoll的比较
linux提供了select、poll、epoll接口来实现IO复用,三者的原型如下所示,本文从参数、实现、性能等方面对三者进行对比。 int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);int poll(struct po转载 2012-01-10 10:11:29 · 783 阅读 · 0 评论