• Mkdir


    一个 Mkdir 函数。可用于创建递归目录。

    实验环境: linux+ gcc3.2

    #include <iostream>
    #include 
    <string>
    #include 
    <sys/stat.h>
    #include 
    <sys/types.h>
    #include 
    <vector>
    using namespace std;


    int Mkdir( const char *pathname, mode_t mode )
    {
        
    char* pPath = NULL;
        vector
    < const char* > folders ;
        
    if (  ( pPath = (char*)malloc( strlen( pathname ) + 2  ) ) == NULL )
        {
            
    return -1;
        }
        strncpy( pPath, pathname,  strlen( pathname )  
    + 2   );
        
    // 补上结尾的 '/'
        pPath[strlen(pPath)] = '/';
        
    char*pPath2 = pPath;
        
    if ( *pPath2  )
        {
            folders.push_back( pPath2
    ++ ); 
        }       
        
    while ( *pPath2 )
        {
            
    if ( *pPath2 == '/' )
            {
                
    *pPath2++ = '\0';
                
    while ( *pPath2 == '/' )
                {
                    
    *pPath2++ = '\0';
                }
                folders.push_back( pPath2
    ++ );        
            }
            
    else
            {
                pPath2
    ++;
            }
        }
        
    string s;
        
    for (  int index = 0 ; index < folders.size() ; index++ )
        {
            s.append( folders[index] );
            s.append( 
    "/" );
            
    if ( mkdir( s.c_str() , mode ) == -1 && errno != EEXIST )
            {
                cout 
    <<  "error:" << strerror( errno )  << endl;
                
    return -1;
            }

        }
        delete pPath;
        
    return 0;
    }
  • 相关阅读:
    项目流程
    Html5 经验
    knockoutjs 经验总结
    redmine处理规范
    用fiddler监控移动端的通讯
    git
    es6 中的 Promise
    html5游戏的横屏问题
    jQuery 学习笔记
    jQuery 里的 Promise
  • 原文地址:https://www.cnblogs.com/diylab/p/1447796.html
Copyright © 2020-2023  润新知