C语言 linux文件名作参数,c语言自定义文件名?

1.用C语言自定义文件名,涉及到的相关知识如下:

_finddata_t结构体:

struct _finddata_t {

unsigned  attrib ;

time_t  time_create ;

time_t  time_access ;

time_t  time_write ;

_fsize_t  size ;

char name [260] ;

}

rename函数:

功能描述:

改变文件的名称或者位置,如果目标已存在,将被自动覆盖。

用法:

#include

int rename(const char *oldpath, const char *newpath);

参数:

oldpath:旧文件名。

newpath:新文件名或者新位置。

返回说明:

成功执行时,返回0。失败返回-1,errno被设为以下的某个值

EACCES:权能不足

EBUSY:参数oldpath或者newpath代表的是目录,而且一些进程正在使用它们

EFAULT: 内存空间不可访问

EINVAL:参数无效

EISDIR:newpath是一个现存的目录,而oldpath不是目录

ELOOP :路径解析的过程中存在太多的符号连接

EMLINK:目录超出允许的最大连接数

ENAMETOOLONG:路径名超出可允许的长度

ENOENT:路径名部分内容表示的目录不存在

ENOMEM: 核心内存不足

ENOSPC: 磁盘配额限制或空间不足

ENOTDIR:路径名的部分内容不是目录

EPERM : 包含路径名的文件系统不支持建立目录

EROFS:文件系统只读

ENOTEMPTY:newpath是一个非空的目录,除了. 和 ..以外,还包含其它入口。

EEXIST:同上

EXDEV:oldpath和newpath不处于同一文件系统

2.用C语言自定义文件名的代码例程如下:1234567891011121314151617181920212223242526272829303132333435363738394041424344#include#includeint main(int argv,char *argc){long handle;int i=0, j=0;struct _finddata_t fileinfo;char filePT[256]={'\0'};char fileType[20]={'a','\0'};char filePath[256]={'\0'};char newName[256]={'\0'};char oldName[256]={'\0'}; printf("Input the rename filePath:\n");scanf("%s", filePath);fflush(stdin);printf("Input the rename fileType:\n");scanf("%s", fileType);fflush(stdin);sprintf(filePT,"%s\\*%s",filePath, fileType); handle = _findfirst(filePT, &fileinfo);if(-1 == handle){printf("_findfirst() error\n");getchar();return(-1);}i=1000;do{sprintf(oldName,"%s\\%s", filePath, fileinfo.name);//全部路径sprintf(newName,"%s\\%d%s", filePath, i++, fileType);j=rename(oldName, newName);if(j != 0){printf("rename() error\n");break;}}while( !_findnext(handle, &fileinfo) );_findclose(handle);printf("Program End\n");getchar();return(0);}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值