第四章 文件和目录 (四)

//---------------dir.c---------------------------

 

//这么多,我懒得写出错信息了

 

#include <sys/stat.h>

 

#include <sys/types.h>

 

#include <dirent.h>

 

#include <unistd.h>

 

#include "ourhdr.h"

 

main()

 

{

 

       char line[MAXLINE];

 

       char *li;

 

       DIR *dir;

 

       struct dirent *dirp;

 

 

 

       chdir("/home/king/programe");    //我们现改变当前的工作目录

 

 

 

       mkdir("dir",0770);              //在此创建一个文件夹dir,在向里面生成几个文件

 

       mkdir("dir/top",0770);

 

       creat("dir/1",0600);

 

       creat("dir/2",0600);

 

       creat("dir/3",0600);

 

 

 

       dir=opendir("dir");

 

       while((dirp=readdir(dir))!=NULL)    //看来读目录的文件是一个一个来的

 

       {

 

              if(strcmp(dirp->d_name,".")==0 || strcmp(dirp->d_name,"..")==0)

 

                     continue;

 

              printf("%s/n",dirp->d_name);

 

       }

 

 

 

       closedir(dir);

 

       li=getcwd(line,20);              //获取当前工作目录,执行一下就看到了

 

       printf("Working directory is %s/n",li);

 

}

 

//---------------------end-----------------------

 

king@king-laptop:~/blog$ pwd  看到了,当前工作目录是/home/king/blog

 

/home/king/blog

 

king@king-laptop:~/blog$ gcc -o dir dir.c

 

king@king-laptop:~/blog$ ./dir

 

3

 

top

 

2

 

1

 

Working directory is /home/king/programe      这个进程的工作目录可是/home/king/programe

 

king@king-laptop:~/blog$

 

在加个rmdir函数就差不多了,谁看到这里自己加吧。

 

 

 

chroot

 

chroot用于辅助因特网文件传输中的安全性。系统中没有帐号的用户放在一个单独的目录下,以阻止用户访问此目录以外的文件。

 

//---------chroot.c-----------

 

#include "ourhdr.h"

 

main()

 

{

 

       char *p,line[20];

 

       chroot("/home/king/");

 

       p=getcwd(line,20);

 

       printf("%s/n",p);

 

}

 

//-----------end---------------

 

king@king-laptop:~/blog$ gcc -o chroot chroot.c

 

king@king-laptop:~/blog$ ./chroot    //找不到我们的/了吧,还要注意,现在进程的根目录是/home 而不是/king

 

/home/king/blog

 

 

 

 sync/fsync

 

避免延迟写,保证硬盘上实际文件系统与缓存中内容的一致性

 

Linux的人应该都有体会,拿一个U盘拷电影,还没什么感觉呢就说拷完了,可当我们写在文件卷是才告诉我们文件正在写入清稍等。这就是延迟写技术了。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值