2014年1月5日
摘要: 非阻塞I/O非阻塞I/O使我们可以调用open、read和write这样的I/O操作,并使这些操作不会永远阻塞。如果这种操作不能完成,则调用立即出错返回,表示该操作若继续执行将阻塞。对一个给定的描述符,有两种方法对其指定非阻塞I/O:(1) 如果调用open获得描述符,则可指定O_NONBLOCK标志。(2) 对于已经打开的一个描述符,则可调用fcntl,由该函数打开O_NONBLOCK文件状态标志。示例程序:对一个文件描述符打开一个或多个文件状态标志#include #include void set_fl(int fd, int flags) //flags are file statu. 阅读全文
posted @ 2014-01-05 00:06 运动和行动 阅读(143) 评论(0) 推荐(0) 编辑
  2014年1月1日
摘要: top命令是linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。下面详细介绍它的使用方法:-------------------------------------------------- 阅读全文
posted @ 2014-01-01 22:52 运动和行动 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 僵尸进程In UNIX System terminology, a process that has terminated,but whose parent has not yet waited for it, is called a zombie. 在UNIX 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他, 那么他将变成一个僵尸进程。 但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程, 因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程, 看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由Init 来接管他,成为 阅读全文
posted @ 2014-01-01 22:49 运动和行动 阅读(381) 评论(0) 推荐(0) 编辑
  2013年12月29日
摘要: 守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。守护进程的编程本身并不复杂,复杂的是各种版本的Unix的实现机制不尽相同,造成不同Unix环境下守护进程的编程规则并不一致。这需要读者注意,照搬某些书上的规则(特别是BSD4.3和低版本的System V)到Linux会出现错误的。下面将全面介绍Linux下守护 阅读全文
posted @ 2013-12-29 22:31 运动和行动 阅读(1065) 评论(0) 推荐(0) 编辑
  2013年12月25日
摘要: 在makefile中经常会看到这些选项,简要说明其作用:-I后面紧跟着用户设定的编译器头文件查找路径如: -I/my_include_path/-L后面紧跟着用户设定的编译器库文件查找路径如: -L/my_lib_search_path/-l用来指明编译器要链接哪些库如: gcc test.c -o test -lmylibname 阅读全文
posted @ 2013-12-25 23:15 运动和行动 阅读(1776) 评论(0) 推荐(0) 编辑
  2013年12月23日
摘要: 在ANSI C中,这些宏的定义位于stdarg.h中,典型的实现如下:typedef char *va_list;va_start宏,获取可变参数列表的第一个参数的地址(list是类型为va_list的指针,param1是可变参数最左边的参数):#define va_start(list,param1) ( list = (va_list)&param1+ sizeof(param1) )va_arg宏,获取可变参数的当前参数,返回指定类型并将指针指向下一参数(mode参数描述了当前参数的类型):#define va_arg(list,mode) ( (mode *) ( list + 阅读全文
posted @ 2013-12-23 23:21 运动和行动 阅读(17709) 评论(0) 推荐(2) 编辑
  2013年10月23日
摘要: 在C语言中:char a = 'a';sizeof(char) = 1;sizeof(a) = 1;sizeof('a') = 4;在C++语言中:char a = 'a';sizeof(char) = 1;sizeof(a) = 1;sizeof('a') = 1;这是ISO C和ISO C++的一个区别:In C, character literals(字符常量) such as 'a' have type int, and thus sizeof('a') isequal to sizeof( 阅读全文
posted @ 2013-10-23 21:00 运动和行动 阅读(655) 评论(0) 推荐(0) 编辑
  2013年10月22日
摘要: 1.QCoreApplication描述:The QCoreApplication class provides an event loop for console Qt applications.2.QApplication描述:The QApplication class manages the GUI application's control flow and main settings.3.QWidget描述:The QWidget class is the base class of all user interface objects.方法:void setWindowT 阅读全文
posted @ 2013-10-22 08:39 运动和行动 阅读(361) 评论(0) 推荐(0) 编辑
  2013年10月21日
摘要: useradd [选项] 用户名功能:添加用户例:useradd tomuserdel [选项] 用户名功能:删除用户例:userdel -r tom-r选项会使/home目录下的该用户目录也被删除passwd [选项] 用户名功能:修改用户密码例:passwd tomsu [选项] [用户名]功能:切换用户例:su - root- 选项表示切换到root用户,并将root用户的环境变量同时带入 阅读全文
posted @ 2013-10-21 08:57 运动和行动 阅读(141) 评论(0) 推荐(0) 编辑
  2013年10月20日
摘要: 一、系统调用方式1.文件描述符内核利用文件描述符来访问文件,文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。2.int open(const char *pathname, int flags) int open(cosnt char *pathname, int flags, mode_t mode) 描述:Given a pathname for a file, open() returns a file descriptor, a small,nonnegative integer for use in subsequent system calls... 阅读全文
posted @ 2013-10-20 16:59 运动和行动 阅读(317) 评论(0) 推荐(0) 编辑