linux中C++怎样在当前目录创建一个文件

 我来答
物理公司的
2017-05-11 · TA获得超过5701个赞
知道大有可为答主
回答量:6105
采纳率:86%
帮助的人:1725万
展开全部
#include <stdio.h>  
#include <string.h>  
#include <stdlib.h>  
#include <sys/stat.h>  
#include <unistd.h>  
#include <sys/types.h>  
#include <errno.h>  
  
#define MAX_DIRPATH_LEN 512  
#define DEFAULT_DIRPATH "Hello world"  
  
static char dirpath[MAX_DIRPATH_LEN];  
  
//没有用到这段程序,不过如果想创建一个文件名的完整路径可以执行这个函数  
const char* filename_to_full_path(char* filename)  
{  
    static char buf[1024];  
    sprintf(buf, "%s/%s", dirpath, filename);  
    return buf;  
}  
  
int main (int argc , char** argv)  
{  
    struct stat file_stat;  
    int ret;  
  
    //下面语句是建立默认文件夹的路径  
    strncpy(dirpath, getenv("HOME"), MAX_DIRPATH_LEN);//默认的路径为home  
    dirpath[ strlen(dirpath) ] = '/';//添加分隔符  
    strncpy(dirpath + strlen(dirpath), DEFAULT_DIRPATH, MAX_DIRPATH_LEN - strlen(dirpath));//默认的文件夹  
  
    argc--;  
  
    if(argc)  
    {  
        if(!argv[1])  
        {  
            printf("the argument is invalue!\n");  
            return -1;  
        }  
        strcpy(dirpath, argv[1]);//运行程序时可以输入自己想创建的文件夹的完整路径  
    }  
      
    ret = stat(dirpath, &file_stat);//检查文件夹状态  
    if(ret<0)  
    {  
        if(errno == ENOENT)//是否已经存在该文件夹  
        {  
            ret = mkdir(dirpath, 0775);//创建文件夹  
            printf("creat dir '/%s'/\n", dirpath);  
            if(ret < 0)  
            {  
                printf("Could not create directory \'%s\' \n",  
                    dirpath);  
                return EXIT_FAILURE;  
            }  
  
        }  
        else  
        {  
            printf("bad file path\n");  
            return EXIT_FAILURE;  
        }  
    }  
  
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式