#include <stdio.h>
#include<string.h>
#include<sys/types.h>
#include<dirent.h>
#include<errno.h>
//目录是否存在 1存在,0不存在,-1错误
int dir_exits(char *pPathName)
{
DIR * dir;
if(pPathName == NULL) return -1;
dir = opendir(pPathName);
if(dir == NULL){
return 0;
}else{
closedir(dir);
return 1;
}
}
//创建目录,子目录
int createdir(char *pPathName)
{
char *p;
char szPathName[256];
memset(szPathName,0,256);
p = strtok(pPathName,"/");
while(p != NULL){
strcat(szPathName,"/");
strcat(szPathName,p);
printf("szPathName=%sn",szPathName);
if(dir_exits(szPathName) == 0){
if(mkdir(szPathName,07777) == -1){
printf("call mkdir error. errno=%d,errstr=%sn",errno,strerror(errno));
}
}
p = strtok(NULL,"/");
}
return 0;
}
int main(int argc,char *argv[])
{
if(argc != 2){
printf("Useage: %s dirname(/home/xjli/1/2)n",argv[0]);
return -1;
}
printf("dir=%sn",argv[1]);
createdir(argv[1]);
return 0;
}
我想在linux下创建程序中路径上网搜了以下,找到了上面的代码,我编译的时候编译不过去就,没有mkdir的声明
照她的头文件我找到了dirent.h确实在其中就没有看见mkdir的声明,在c下用的是dir.h但是在linux下 没有这个头文件
想问问,这该撒办,不用mkdir的话在linux下如何用代码创建路径,指点
linux下程序中用mkdir创建路径
-
- 帖子: 448
- 注册时间: 2008-07-10 15:08
- xhy
- 帖子: 3916
- 注册时间: 2005-12-28 1:16
- 系统: Ubuntu 12.10 X64
- 来自: 火星
-
- 帖子: 448
- 注册时间: 2008-07-10 15:08
Re: linux下程序中用mkdir创建路径
谢谢
我试过了mkdir是能用了,它说的是成功,
但是我感觉我有一点不足的是,创建的时候要指定绝对路径
能不能指定先对路径阿,?
我试过了mkdir是能用了,它说的是成功,
但是我感觉我有一点不足的是,创建的时候要指定绝对路径
能不能指定先对路径阿,?
- xhy
- 帖子: 3916
- 注册时间: 2005-12-28 1:16
- 系统: Ubuntu 12.10 X64
- 来自: 火星
Re: linux下程序中用mkdir创建路径
weihua2008 写了:谢谢
我试过了mkdir是能用了,它说的是成功,
但是我感觉我有一点不足的是,创建的时候要指定绝对路径
能不能指定先对路径阿,?
if ( 文件名 以/开头 )
{
使用绝对路径;
}
else
{
路径=$PWD+文件名
}
目前负债150多万
-
- 帖子: 448
- 注册时间: 2008-07-10 15:08
Re: linux下程序中用mkdir创建路径
xhy,
我领会你的意思,
$PWD是不是应该getcwd(buf,sizeof(buf))用才对
有直接用$PWD的吗?
我做的是实现了在当前路径下在创建一个文件夹,再在新建的文件夹里创建文件,并写入数据
但是感觉还有局限性,不能随心所欲的创建多级路径,当然受到权限的限制是一方面的原因
主要是多级路径该如何实现哪?
象$PWD+/1/2/3/4,有想法没有?
我领会你的意思,
$PWD是不是应该getcwd(buf,sizeof(buf))用才对
有直接用$PWD的吗?
我做的是实现了在当前路径下在创建一个文件夹,再在新建的文件夹里创建文件,并写入数据
但是感觉还有局限性,不能随心所欲的创建多级路径,当然受到权限的限制是一方面的原因
主要是多级路径该如何实现哪?
象$PWD+/1/2/3/4,有想法没有?
-
- 帖子: 448
- 注册时间: 2008-07-10 15:08
Re: linux下程序中用mkdir创建路径
搞定,俩字系统还不让发表了
搞定
搞定