posts - 525, comments - 84, trackbacks - 1, articles - 0
   :: 首页 ::  :: 联系 :: 订阅 订阅 :: 管理

公告

Linux

摘要: 大部分人用ping命令只是作为查看另一个系统的网络连接是否正常的一种简单方法。在这篇文章中,作者将介绍如何用C语言编写一个模拟ping命令功能的程序。ping命令是用来查看网络上另一个主机系统的网络连接是否正常的一个工具。ping命令的工作原理是:向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把报文一模一样地传回给发送者,这有点象潜水艇声纳系统中使用的发声装置。例如,在Li...阅读全文

posted @ 2009-12-30 12:29 surfer| 编辑 |

摘要: 本例示范Linux信号量的基本用法。该范例使用了两个线程分别对一个公用队列进行入队和出队操作,并用信号量进行控制,当队列空时出队操作可以被阻塞,当队列满时入队操作可以被阻塞。主要用到的信号量函数有:sem_init:初始化信号量sem_t,初始化的时候可以指定信号量的初始值,以及是否可以在多进程间共享。sem_wait:一直阻塞等待直到信号量>0。sem_timedwait:阻塞等待若干时间...阅读全文

posted @ 2009-12-30 12:28 surfer| 编辑 |

摘要: Linux 中的应用程序以以下两种方式之一链接到外部函数:要么在构建时与静态库( lib*.a)静态地链接,并且将库代码包含在该应用程序的可执行文件里;要么在运行时与共享库( lib*.so)动态地链接。通过动态链接装入器,将动态库映射进应用程序的可执行内存中。在启动应用程序之前,动态链接装入器将所需的共享目标库映射到应用程序的内存,或者使用系统共享的目标并为应用程序解析所需的外部引用。现在应用程...阅读全文

posted @ 2009-12-30 12:27 surfer| 编辑 |

摘要: 摘要:动态链接库技术实现和设计程序常用的技术,在Windows和Linux系统中都有动态库的概念,采用动态库可以有效的减少程序大小,节省空间,提高效率,增加程序的可扩展性,便于模块化管理。但不同操作系统的动态库由于格式 不同,在需要不同操作系统调用时需要进行动态库程序移植。本文分析和比较了两种操作系统动态库技术,并给出了将Visual C++编制的动态库移植到Linux上的方法和经验。    1、...阅读全文

posted @ 2009-12-30 12:26 surfer| 编辑 |

摘要: 功能说明:报告进程状况。 常用参数: ps auxf 语  法:ps [-aAcdefHjlmNVwy][acefghLnrsSTuvxX][-C ][-g ][-G ][-p ][p ][-s ][-t ][t ][-u ][-U ][U ][-][--cols ][--columns ][--cumulative][--deselect][--forest][--headers][--he...阅读全文

posted @ 2009-12-30 12:24 surfer| 编辑 |

摘要: 1.sed-n'2'pfilename打印文件的第二行。2.sed-n'1,3'pfilename打印文件的1到3行3.sed-n'/Neave/'pfilename打印匹配Neave的行(模糊匹配)4.sed-n'4,/The/'pfilename在第4行查询模式The5.sed-n'1,$'pfilename打印整个文件,$表示最后一行。6.sed-n'/.*ing/'pfilename匹配任...阅读全文

posted @ 2009-12-30 12:23 surfer| 编辑 |

摘要: /*SList.h单链表的实现*/#ifndefSLIST_H_#defineSLIST_H_#include<iostream>classNode...{public:intinfo;Node*next;Node(intel,Node*ptr=0)...{info=el;next=ptr;}};classSList...{public:SList()...{head=tail=0;}...阅读全文

posted @ 2009-12-30 12:22 surfer| 编辑 |

摘要: netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息,在我的计算机上执行netstat后,其输出结果为:Active Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address Foreign Address Statetcp 0 2 210.34....阅读全文

posted @ 2009-12-30 12:17 surfer| 编辑 |

摘要: 功能说明:显示网络状态。语  法:netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]补充说明:利用netstat指令可让你得知整个Linux系统的网络情况。参  数:-a或--all 显示所有连线中的Socket。-A<网络类型>或--<网络类型> 列出该网络类型连线中的相关地址。-c或--continuous 持...阅读全文

posted @ 2009-12-30 12:15 surfer| 编辑 |

摘要: 当需要中断一个前台进程的时候,通常是使用< Ctrl+c >组合键;但是对于一个后台进程恐怕就不是一个组合键所能解决的了,这时就必须求助于kill命令。该命令可以终止后台进程。至于终止后台进程的原因很多,或许是该进程占用的CPU时间过多;或许是该进程已经挂死。总之这种情况是经常发生的。  kill命令是通过向进程发送指定的信号来结束进程的。如果没有指定发送信号,那么默认值为TERM信号...阅读全文

posted @ 2009-12-30 12:14 surfer| 编辑 |

摘要: GNU make 指南 本文是一篇介绍 GNU Make 的文章,读完后读者应该基本掌握了 make 的用法。而 make 是所有想在 Unix (当然也包括 Linux )系统上编程的用户必须掌握的工具。如果你写的程序中没有用到 make ,则说明你写的程序只是个人的练习程序,不具有任何实用的价值。也许这么说有点儿偏激,但 make 实在是应该用在任何稍具规模的程序中的。希望本文可以为中国的 U...阅读全文

posted @ 2009-12-30 12:13 surfer| 编辑 |

摘要: DB2数据库1、Load 方法装入数据:export to tempfile of del select * from TABLENAME where not 清理条件;load from tempfile of del modified by delprioritychar replace into TABLENAME nonrecoverable;说明: 在不相关的数据表export数据时,可...阅读全文

posted @ 2009-12-30 12:12 surfer| 编辑 |

摘要: FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操作系统下使用FTP,都会遇到大量的FTP内部命令。熟悉并灵活应用FTP的内部命令,可以大大方便使用者,并收到事半功倍之效。  FTP的命令行格式为:ftp -v -d -i -n -g [主机名],其中  -v显示远程服务器的所有响应信息;  -n限制ftp的自动登录,即不使用;  .n etrc文件;  -d使用调...阅读全文

posted @ 2009-12-30 12:11 surfer| 编辑 |

摘要: 当我们的程序中有经常使用的模块,而且这种模块在其他程序中也会用到,这时按照软件重用的思想,我们应该将它们生成库,使得以后编程可以减少开发代码量。这里介绍两个命令ar和nm,用来对库操作。当我们的程序中有经常使用的模块,而且这种模块在其他程序中也会用到,这时按照软件重用的思想,我们应该将它们生成库,使得以后编程可以减少开发代码量。这里介绍两个命令ar和nm,用来对库操作。1、ar基本用法ar命令可以...阅读全文

posted @ 2009-12-30 12:09 surfer| 编辑 |

摘要: linux下DNS配置详解DNS 是域名系统(DomainName Server) 的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务。在Internet上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。 DNS 命名用于Internet等TCP/...阅读全文

posted @ 2009-12-27 23:19 surfer| 编辑 |

摘要: 非常详细的vsftpd服务器配置相关文件:/etc/vsftpd/vsftpd.conf 主配置文件/etc/vsftpd.ftpusers 指定哪些用户不能访问FTP服务器/etc/vsftpd.user_list 可以根据vsftpd.conf文件中的设置来决定该文件中指定的用户是否可以访问ftp服务器/etc/rc.d/init.d/vsftpd vsftpd的启动脚本文件2.修改/etc/...阅读全文

posted @ 2009-12-27 23:15 surfer| 编辑 |

摘要: fstab中存放了与分区有关的重要信息,其中每一行为一个分区记录,每一行又可分为六个部份,下面以/dev/hda7 / ext2 defaults 1 1为例逐个说明:1. 第一项是您想要mount的储存装置的实际位置,如hdb或如上例的/dev/hda7。2. 第二项就是您想要将其加入至哪个目录位置,如/home或如上例的/,这其实就是在安装时提示的挂入点。3. 第三项就是所谓的local fi...阅读全文

posted @ 2009-12-27 23:12 surfer| 编辑 |

摘要: 用下面的命令确定和记录要成为镜像盘的磁盘硬件地址: ioscan -fnC disk  在这个例子中,用作镜像的磁盘为/dev/dsk/c1t0d0。请参考下面所使用的每个命令的帮助页,以更好地了解这些命令。  建立根卷组镜像:1) swlist -l bundle如果系统上已安装,这个命令将显示MirrorDisk/UX。如果未找到MirrorDisk/UX,则需要将其装载到系统上,这个产品**...阅读全文

posted @ 2009-12-27 23:04 surfer| 编辑 |

摘要: shell字符串的截取的问题:一、Linux shell 截取字符变量的前8位,有方法如下:1.expr substr “$a” 1 82.echo $a|awk ‘{print substr(,1,8)}’3.echo $a|cut -c1-84.echo $5.expr $a : ‘\(.\\).*’6.echo $a|d...阅读全文

posted @ 2009-12-27 23:01 surfer| 编辑 |

摘要: ARGV 命令行变元数组FILENAME 当前输入文件名FNR 当前文件中的记录号FS 输入域分隔符,默认为一个空格RS 输入记录分隔符NF 当前记录里域个数NR 到目前为止记录数OFS 输出域分隔符ORS 输出记录分隔符1、awk '/101/' file 显示文件file中包含101的匹配行。 awk '/101/,/105/' file awk '$1 == 5' file awk '$1...阅读全文

posted @ 2009-12-27 22:59 surfer| 编辑 |

摘要: WINDOWS完成端口编程1、基本概念2、WINDOWS完成端口的特点3、完成端口(Completion Ports )相关数据结构和创建4、完成端口线程的工作原理5、Windows完成端口的实例代码Linux的EPoll模型1、为什么select落后2、内核中提高I/O性能的新方法epoll3、epoll的优点4、epoll的工作模式5、epoll的使用方法6、Linux下EPOll编程实例总结...阅读全文

posted @ 2009-12-27 22:56 surfer| 编辑 |

摘要: SCOUNIX系统中如何添加SCSI硬盘 装了SCOUNIX操作系统以后的硬盘称为第一个控制器上的第一块硬盘,或者第一个主适配器(对于SCSI硬盘来说)上的第一块硬盘。对于标准硬盘控制器,或IDA智能阵列扩展控制器来说是逻辑硬盘,往往由一个以上实际硬盘组成,以下为便于讲座不再加以区分,使用命令:mkdevhd 首先必须知道要加到哪块硬盘控制器上,新加的硬盘是这个控制器上第一块盘还是第二块盘。这两...阅读全文

posted @ 2009-12-27 22:52 surfer| 编辑 |

摘要: 例子 9-25. 产生随机整数 1#!/bin/bash 2 3# 每次调用$RANDOM都会返回不同的随机整数. 4# 一般范围为: 0 - 32767 (有符号的16-bit整数). 5 6MAXCOUNT=10 7count=1 8 9echo 10echo "$MAXCOUNT random numbers:" 11echo "-----------------" 12wh...阅读全文

posted @ 2009-12-27 22:49 surfer| 编辑 |

摘要: 摘要:本期的目的是向大家介绍shell的概念和基本原理,并且在此基础上动手做一个简单shell解释器。同时,还将就用到的一些 linux环境编程的知识做一定讲解。本文适合的读者对象对linux环境上的c语言开发有一定经验;对linux环境编程(比如进程、管道)有一点了解。概述本章的目的是带大家了解shell的基本原理,并且自己动手做一个shell解释器。为此,首先,我们解释什么是shell解释器。...阅读全文

posted @ 2009-12-27 08:08 surfer| 编辑 |

摘要: gdb对于多线程程序的调试有如下的支持:线程产生通知:在产生新的线程时, gdb会给出提示信息 (gdb) rStarting program: /root/thread [New Thread 1073951360 (LWP 12900)] [New Thread 1082342592 (LWP 12907)]---以下三个为新产生的线程[New Thread 1090731072 (LWP 1...阅读全文

posted @ 2009-12-27 07:57 surfer| 编辑 |

摘要: 虽然常用tcpdump这个工具,可是却对某个参数一知半解,google到的中文资料常常人云亦云,一错皆错,反而不知所云,闲来无事,参考tcpdump的man格式,并根据自己的理解和测试,弄了下面这份文档。有些不常见的内容,本人忽略了!?因为个人水平有限,谬误之处在所难免,希望有水的灌水,有砖的拍砖!!语法描述Tcpdump程序用来捕获通过某网络接口的匹配某布尔表达式的数据报文信息。操作系统使用Tc...阅读全文

posted @ 2009-12-27 07:54 surfer| 编辑 |

摘要: 信号量是一种对多个进程访问共享资源进行控制的机制,其实为了解决互斥共享资源的同步问题而引入的机制。不能单独定义一个信号量,而只能定义一个信号量集,其中包括一组信号量,同意信号量集中的信号量使用同一引用ID,这样设置是为了多个资源或同步操作的需要。与信号量有关的几个系统调用函数:1、信号量集得创建与打开 semget()原型:int semget(key_t key,int nsems,int se...阅读全文

posted @ 2009-12-27 07:46 surfer| 编辑 |

摘要: Q UNICODE字符串如何显示A如果程序定义了_UNICODE宏直接用WCHAR *str=L"unicodestring";TextOut(0,0,str);否则就需要转换类型#include <comdef.h>WCHAR *str=L"unicodestring";bstr_t str1=str;TextOut(0,0,(char*)str1);Q 如何实现ANSI和UNICO...阅读全文

posted @ 2009-12-26 22:58 surfer| 编辑 |