您的位置:首页 > 编程语言 > C语言/C++

C语言文件与目录(一)

2015-11-02 13:16 375 查看
注意包含头文件

#include <sys/types.h>

#include <sys/stat.h>

1.创建与删除目录

在Linux系统中,目录就是一个文件夹,文件可以存放在目录中。目录是一种特殊的文件,需要对目录设置权限。 创建目录函数mkdir:函数mkdir可以硬盘中建立一个目录,相当于mkdir命令。但与mkdir命令不同的是,这里的操作是用c语言的函数完成目录创建的。函数的使用方法如下所示。

int mkdir(char* pathname,mode_t mode);

在参数列表中,pathname是一个字符串,表示需要创建的目录路径。mode是表示权限的八进制数字。如果目录创建成功,则返回整型数0,否则返回整型数-1。要使用这个函数需要在程序中包含“sys/types.h”与“sys/stat.h”两个头文件。注意:使用mkdir函数创建目录时需要指定创建的目录的权限模式,权限模式以八进制的方式给出(以0开头的四个数字)。

DEMO:

char dir1[255];
char *mainpath="D:\C\test";
strcat(strcpy(dir1,mainpath),"\dir1");
if(mkdir(dir1,0777)==0)
{
printf("created successfully!\n");
}
else
{
printf("Error:%s!\n",strerror(errno));
}


删除目录函数rmdir:rmdir函数的作用是删除一个空目录。该函数的使用方法如下所示。

int rmdir(char *pathname);

参数pathname是需要删除的目录字符串指针。如果删除成功,则返回一个整型0,否则返回-1。

DEMO:

if(rmdir(dir1)==0)
{
printf("removed %s successfully!\n",dir1);
}
else
{
printf("Error:%s!\n",strerror(errno));
}

2.创建与删除文件

所谓创建文件,是指在一个目录建立一个空文件,可以文件可供其他程序的写入操作。删除文件指将无用的文件从磁盘中删除无用的文件。本节将讲解文件的建立与删除操作。创建文件函数creat:函数creat的作用是在目录中建立一个空文件,该函数的使用方法如下所示。

int creat(char * pathname, mode_t mode);

函数的参数pathname表示需要建立文件的文件名和目录名。mode表示这个文件的权限。文件权限的设置见本章第一节所述。文件创建成功时返回创建文件的编号,否则返回-1。

DEMO:

if(create(file1)==-1)
{
printf("Error:%s!\n",strerror(errno));
}
else
{
printf("created %s successfully!\n",file1);
}
删除文件函数remove:函数remove的作用是删除一个文件。这个函数的使用方法如下所示。

int remove(char *pathname);

参数remove是一个字符串,表示需要删除的目录。文件删除成功则返回0,则否返回-1。要使用这个函数需要在程序的最前面包含下面的头文件#include <stdio.h>。

DEMO:

if(remove(file1)==0)
{
printf("deleted %s successfully!\n",file1);
}
else
{
printf("Error:%s!\n",strerror(errno));
}

3.临时文件操作

建立临时文件函数mkstemp:所谓临时文件,指的是程序运行时为了存储中间数据建立的文件。计算机重启时,这些文件会自动删除。如果在程序运行时,需要把文件短时间的写到磁盘上,可以使用mkstemp函数创建一个临时文件。mkstemp函数的使用方法如下所示。

int mkstemp(char *template);

参数template表示需要建立临时文件的文件名字符串。文件名字符串中最后六个字符必须是XXXXXX。mkstemp函数会以可读写模式和0600权限来打开该文件。如果文件不存在则会建立这个文件。返回值是打开文件的编号,如果文件建立不成功,则返回-1。 注意:参数template所指的文件名称字符串必须声明为数组,用下面这种声明数组的方法声明。char template[] =”template-XXXXXX”;使用下面这种声明字符串的方法声明的template是不能运行的char *template =
“template-XXXXXX”;

DEMO:

char tem_file[]="template-file";
if(mkstemp(tem_file)==-1)
{
printf("Error:%s!\n",strerror(errno));
}
else
{
printf("created tem_file %s successfully!\n",tem_file);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: