linux下程序中用mkdir创建路径

C、C++和Java语言
回复
weihua2008
帖子: 448
注册时间: 2008-07-10 15:08
送出感谢: 0
接收感谢: 0
联系:

linux下程序中用mkdir创建路径

#1

帖子 weihua2008 » 2008-12-03 11:38

#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下如何用代码创建路径,指点
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星
送出感谢: 1 次
接收感谢: 0

Re: linux下程序中用mkdir创建路径

#2

帖子 xhy » 2008-12-03 12:28

代码: 全选

       #include <sys/stat.h>
       #include <sys/types.h>
目前负债150多万
weihua2008
帖子: 448
注册时间: 2008-07-10 15:08
送出感谢: 0
接收感谢: 0
联系:

Re: linux下程序中用mkdir创建路径

#3

帖子 weihua2008 » 2008-12-03 15:57

谢谢
我试过了mkdir是能用了,它说的是成功,
但是我感觉我有一点不足的是,创建的时候要指定绝对路径
能不能指定先对路径阿,?
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星
送出感谢: 1 次
接收感谢: 0

Re: linux下程序中用mkdir创建路径

#4

帖子 xhy » 2008-12-03 19:07

weihua2008 写了:谢谢
我试过了mkdir是能用了,它说的是成功,
但是我感觉我有一点不足的是,创建的时候要指定绝对路径
能不能指定先对路径阿,?

if ( 文件名 以/开头 )
{
使用绝对路径;
}
else
{
路径=$PWD+文件名
}
目前负债150多万
weihua2008
帖子: 448
注册时间: 2008-07-10 15:08
送出感谢: 0
接收感谢: 0
联系:

Re: linux下程序中用mkdir创建路径

#5

帖子 weihua2008 » 2008-12-04 14:57

xhy,
我领会你的意思,
$PWD是不是应该getcwd(buf,sizeof(buf))用才对
有直接用$PWD的吗?
我做的是实现了在当前路径下在创建一个文件夹,再在新建的文件夹里创建文件,并写入数据
但是感觉还有局限性,不能随心所欲的创建多级路径,当然受到权限的限制是一方面的原因
主要是多级路径该如何实现哪?
象$PWD+/1/2/3/4,有想法没有?
weihua2008
帖子: 448
注册时间: 2008-07-10 15:08
送出感谢: 0
接收感谢: 0
联系:

Re: linux下程序中用mkdir创建路径

#6

帖子 weihua2008 » 2008-12-04 15:30

搞定,俩字系统还不让发表了
搞定
回复

回到 “C/C++/Java”