Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2012, 10:05   #1
neomax38
Пользователь
 
Регистрация: 17.09.2010
Сообщений: 72
По умолчанию Создать ссылки на файлы из заданного каталога в текущий. (С, Linux)

Здравствуйте.
Необходимо создать ссылки на файлы с расширением на заданную букву из заданного каталога в текущий.
В принципе, с горем пополам, все написано и с абсолютными путями работает. Но как указать текущий каталог (это я так понимаю тот из которого запущено мое приложение).
Пока указано так char pathname[50] = "./";
Но это не работает=(

Прошу прощения за код, до этого на СИ не писал вообще ничего даже Hello world.

Код:
#include <stdio.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/dir.h>
#include <dirent.h>
#include <string.h>

int main(int argc, char* argv[]) {

    DIR *cat;
    char* ext;
    char* filename;
    struct dirent *buf;
    char papka[50];     //Путь к заданному каталогу
    char* symbol = "t"; //Заданная буква расширения

    strcpy(papka, argv[1]); //Путь к заданному каталогу присваиваю из агрументов
    cat = opendir(papka);

//Читаю каталог 
    while ((buf = readdir(cat)) != NULL) {
        char pathname[50] = "./";    //Путь к текущему каталогу (тут то и проблема)
        strcpy(papka, argv[1]);  //Сбрасываю путь на заданный
        filename = buf->d_name; 
        printf("%s\n", filename); //Найденный файл
        ext = strrchr(filename, '.');
        if (ext != 0) {
            printf("%s\n", ext + 1); //Расширение найденного файла
            
//Если буква в расширении нужная
            if (!(strncmp(ext + 1, symbol, 1))) {
                strcat(pathname, filename);
                strcat(papka, filename);
                printf("%s\n", pathname);
                link(papka, pathname);
            }
        }
    }

    return 0;
}

Последний раз редактировалось neomax38; 25.02.2012 в 10:15.
neomax38 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа контроля заданного каталога на Delphi Igor100 Помощь студентам 1 29.04.2011 08:42
Linux размер каталога dimacyxarev Общие вопросы C/C++ 3 15.02.2011 22:21
Командный .bat файл выводящий на экран bmp файлы каталога и его подкаталогов. Avin Помощь студентам 2 11.10.2010 13:59
Как из каталога открывать все файлы по очереди Poltev86 Общие вопросы Delphi 3 22.05.2010 15:38
[Delphi] Вычислить расположение и начальный кластер заданного каталога на диске. KrL^^ Помощь студентам 3 22.04.2010 20:12