SORU
25 ŞUBAT 2010, PERŞEMBE


() Özyineli / T Unıx sistem çağrısı

Bu format(2) Bu ismi Unıx sistem çağrısı sayfasına okuduktan sonra, Ara bir yol Ara dizinler, yolun son dizin oluşturmak yok gibi görünüyor. El ile dizin benim dize ayrıştırma ve ayrı ayrı her bir dizin oluşturma başvurmadan yolundaki tüm dizinler oluşturmak için herhangi bir yol (veya başka bir fonksiyonu var mıdır ?

CEVAP
25 ŞUBAT 2010, PERŞEMBE


Sizin için bunu yapmak için bir sistem çağrısı, ne yazık ki yok. Çok iyi tanımlanmış bir hata durumlarda ne yapılması gerektiği için semantik için bir yolu yoktur, çünkü tahmin ediyorum. Önceden oluşturulmuş dizinler bırakın. Onları silmek? Eğer silme başarısız olursa ne olacak? .

Çok kolay kendi rulo, ancak, hızlı bir google 'recursive mkdir' çözümler bir dizi ortaya çıktı. İşte en yakın olduğunu

http://nion.modprobe.de/blog/archives/357-Recursive-directory-creation.html

static void _mkdir(const char *dir) {
        char tmp[256];
        char *p = NULL;
        size_t len;

        snprintf(tmp, sizeof(tmp),"%s",dir);
        len = strlen(tmp);
        if(tmp[len - 1] == '/')
                tmp[len - 1] = 0;
        for(p = tmp   1; *p; p  )
                if(*p == '/') {
                        *p = 0;
                        mkdir(tmp, S_IRWXU);
                        *p = '/';
                }
        mkdir(tmp, S_IRWXU);
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • tinycammonitor

    tinycammonit

    14 Aralık 2010
  • Tire Rack

    Tire Rack

    31 Mayıs 2007
  • TopDJMag TV

    TopDJMag TV

    29 Temmuz 2010