思路:(1)得到"."的i节点号,称其为n(使用stat)
(2)chdir ..(使用chdir)
(3)找到inode号为n的节点,得到其文件名。
重复上述操作直到当前目录“.”的inode值等于".."的inode值
#include
#include
#include
#include
ino_t get_inode(char *);
void pr...
分类:
系统相关 时间:
2014-10-16 14:49:12
阅读次数:
251
ls命令的R参数代表递归的列出所有子文件夹中的所有文件,1表示每一行只显示一个文件或文件夹,f表示不排序即输出,F表示在每项的输出的最后根据其文件类型相应的加上*/=>@|字符。通过c语言实现ls -R1fF命令的效果,其源代码如下:#include
#include
#include
#include
#include
#include
#include
void listdir...
分类:
系统相关 时间:
2014-10-15 21:47:51
阅读次数:
226
linux下ls命令(支持-R参数)的c语言实现:
#include
#include
#include
#include
#include
#include
#include
void do_ls(char *);
void do_stat(char *,char *);
void show_file_info(char *,struct stat *,char *);
voi...
分类:
系统相关 时间:
2014-10-15 16:03:20
阅读次数:
305
1. exit handler. atexit(void (*func)(void)); #automatically called by exit() exit() calls these functions in reverse order of their registeration....
分类:
其他好文 时间:
2014-10-14 17:20:49
阅读次数:
238
思路:在unix系统中有一个名为utmp的文件,里面存着当前登录到系统中用户的信息。utmp这个文件里面保存的是结构数组,数组元素是utmp类型的结构。实现who命令,只要依次从utmp文件中读出utmp类型的结构体,然后通过合适的方式将它显示出来即可。如果每一次只从文件里面读一个结构体数据,那么每一个结构体都要进行依次系统调用。而又因为系统调用比较耗时(涉及到用户态到核心态的切换),所以这样会造...
分类:
系统相关 时间:
2014-10-13 22:48:47
阅读次数:
265
lienhua342014-10-12当一个进程正常或者异常终止时,内核就向其父进程发送 SIGCHLD信号。父进程可以选择忽略该信号,或者提供一个该信号发生时即被调用的函数(信号处理程序)。对于这种信号的系统默认动作是忽略它。在文档“进程控制三部曲”中,我们讲的第三部曲是使用 wait 函数来获取...
分类:
系统相关 时间:
2014-10-13 01:20:08
阅读次数:
375
首先来看一段从《UNIX环境高级编程》中摘录的一段非常有意思的代码。借此我们再来谈谈fork()函数的一些问题。
#include "apue.h"
static void charatatime(char*);
int
main(void)
{
pid_t pid;
if((pid=fork())<0){
err_sys("fork error");
}else ...
分类:
其他好文 时间:
2014-10-12 23:16:58
阅读次数:
278
1.函数sigaction
sigaction函数的功能是检查或修改与指定信号相关联的处理动作。其函数原型如下:
#inlcude
int sigaction(int signo,const struct sigaction * restrict act,struct sigaction * restrict act);
其中参数signo是要检测或修改其具体动作的信号编号。若act指针...
分类:
其他好文 时间:
2014-10-11 20:10:26
阅读次数:
350
1.信号的概念
信号时软中断,它提供了一种处理异步时间的方法。
很多条件都会产生信号:
(1)用户按某些键时,引发终端产生信号。
(2)硬件异常产生信号:除数0,无效的内存引用等。
(3)进程调用kill,可以将任意信号发送给任意进程或进程组。
(4)当检测到某种软件条件已经发生时。例如SIGURG,SIGPIPE和SIGALRM。
当某种信号出现时,可以告诉内核使用下列三种方式来处...
分类:
其他好文 时间:
2014-10-11 13:54:05
阅读次数:
202
对于windows用户假设用Cygwin模拟unix环境的话,里面没有带curl命令,要自己装,所以建议用Gow来模拟,它已经自带了curl工具,安装后直接在cmd环境中用curl命令就可,由于路径已经自己主动给你配置好了。 linux curl是一个利用URL规则在命令行下工作的文件传输工具。.....
分类:
其他好文 时间:
2014-10-10 12:15:34
阅读次数:
160