Здравствуйте.
Необходимо создать ссылки на файлы с расширением на заданную букву из заданного каталога в текущий.
В принципе, с горем пополам, все написано и с абсолютными путями работает. Но как указать текущий каталог (это я так понимаю тот из которого запущено мое приложение).
Пока указано так 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;
}
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.