当前位置:首页 > 资讯 > info6 > 正文

linux c 编程实战: 文件操作总结(四)

发表于: 2016-07-27   作者:championhengyi   来源:转载   浏览:
摘要: 目录操作1.目录的创建和删除mkdir函数可以进行目录的创建#include #include intmkdir(constchar*pathname,intmode) //新创建的目录所有者的uid和创建这个目录进程的uid是一样的,也就是说,如果父目录设置了st_gid位,则新创建的目录也具有st_gid位(设置该位后任何在此目录下创建的文件的组id和该目录的组id是一样的) //函数调用成功

目录操作

1.目录的创建和删除

  • mkdir函数可以进行目录的创建
#include<sys/types.h>
#include<sys/stat.h>
int mkdir(const char * pathname, int mode)
//新创建的目录所有者的uid和创建这个目录进程的uid是一样的,也就是说,如果父目录设置了st_gid位,则新创建的目录也具有st_gid位(设置该位后任何在此目录下创建的文件的组id和该目录的组id是一样的)
//函数调用成功返回0,失败返回-1 
  • rmdir函数可以进行目录的删除
#include<unistd.h>
int rmdir(const char * pathname)
//只能删除空目录
//函数调用成功返回0,失败返回-1

2.获取当前目录

  • getcwd函数可以获取进程当前的工作目录
#include<unistd.h>
char * getcwd(char * buf, int size)
//getcwd会将当前工作目录的绝对路径复制到buf所指的地址空间之中

//size为给buf分配的地址空间,若绝对路径的字符串长度超过size的大小,则函数返回NULL,如果size为0,则getcwd会根据绝对路径的长度自动分配大小给buf所指的内存空间,,如果参数buf是NULL,则函数会根据size的大小自动分配内存给buf所指的内存空间

//函数执行成功返回将结果复制到参数buf所指的内存空间之中,失败返回NULL

3.设置工作目录

  • chdir函数可以更改当前的工作目录
#include<unistd.h>
int chdir(const char * pathname)
int chdir(int fd)
//函数只能改变进程当前的工作目录,它的作用和cd命令是不一样的,cd是切换目录,更改工作目录的意思是进程如果要创建一个文件,默认是创建到当前目录下的,但是更改了工作目录后,就会创建到你更改得那个目录之下
//函数调用成功返回0,失败返回-1

4.获取目录信息

  • opendir函数用来打开一个目录
#include<sys.types.h>
#include<dirent.h>
DIR * opendir(const char * pathname)
//这个函数会打开参数pathname的指定目录,并如同open函数返回文件描述一样返回一个文件目录流,是DIR形态的,失败返回NULL
  • readdir函数用来读取一个目录下的目录项信息
#include<sys/types.h>
#include<dirent.h>
struct dirent * readdir(DIR * dir)
//struct dirent结构体中包含了四个成员,其中我感觉有用的就是d_name这个变量,它可以获取目录下文件的文件名,其他成员都有什么请大家自行百度,进行了解,只要大家知道常用的就行了
//函数调用成功返回一个指向结构体的指针,失败返回-1
  • closedir函数用来关闭dir指向的目录,执行成功返回0,当有错误时返回-1
#include<sys/types.h>
#include<dirent.h>
int closedir(DIR * dir)

对于上面三个函数的应用,附源码:

#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<dirent.h>
#include<unistd.h>


int my_readir(const char *path)
{
    DIR *dir;
    struct dirent *ptr;

    if((dir=opendir(path))==NULL)
    {
        perror("opendir");
        return -1;
    }

    while((ptr=readdir(dir))!=NULL)
    {
        printf("filename:%s\n",ptr->d_name);
    }

    closedir(dir);

    return 0;
}

int main(int argc,char **argv)
{
    if(argc<2)
    {
        printf("listfile <target path>\n");
        exit(1);
    }

    if(my_readir(argv[1])==-1)
    {
        exit(1);
    }

    return 0;
}

linux c 编程实战: 文件操作总结(四)

编辑推荐
   1.Linux文件系统    Linux支持多种文件系统,如ext、ext2、minix、iso9660、msdos、fat、vfa
文章来源:http://dev.yesky.com/468/7601968.shtml 2007-10-12 11:01作者:宋宝华出处:天极网软件
1.Linux文件系统   Linux 支 持多种文件系统,如ext、ext2、minix、iso9660、msdos、fat、vfat、n
文章来源:http://dev.yesky.com/468/7601968.shtml 2007-10-12 11:01作者:宋宝华出处:天极网软件
1.Linux文件系统    Linux 支持多种文件系统,如ext、ext2、minix、iso9660、msdos、fat、vfat、n
linux C 文件操作操作流程 文件操作 目录操作 链接操作 stat 索引节点结构体 struct stat { dev_t s
文件是linux中的一个重要概念。在Linux中,一切(几乎一切)都是文件。简单的说,C中基本的的printf
文件是linux中的一个重要概念。在Linux中,一切(几乎一切)都是文件。简单的说,C中基本的的printf
(L2CAP协议简介,L2CAP在BlueZ中的实现以及L2CAP编程接口) 一:L2CAP协议简介: Logical Link Con
作者:Sam (甄峰) sam_code@hotmail.com (L2CAP协议简介,L2CAP在BlueZ中的实现以及L2CAP编程接
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号