Изменение времени linux c

#c #time

#c #время

Вопрос:

Я пытаюсь получить дату последнего изменения файлов папки на C . Но я не понимаю, как я могу заменить «afile.txt » но переменное имя.

Когда я заменяю «afile.txt » из-за чего-то другого я получил эту ошибку:

proj.cpp : В функции ‘Папка getdir2(std::string, std::vector >amp;, std::string, std::string, std::string)’: proj.cpp:325:25: ошибка: не удается преобразовать ‘const string {он же const std::basic_string}’ в ‘const char*’ для аргумента ‘1’ в ‘int stat(const char*, stat*)’ stat(t1, amp;attrib); // получаем атрибуты afile.txt

Вот этот код:

 struct tm* clock;       // create a time structure
        struct stat attrib;     // create a file attribute structure    
        stat("afile.txt", amp;attrib);   // get the attributes of afile.txt
        clock = gmtime(amp;(attrib.st_mtime)); // Get the last modified time and put it into the time structure
  

Комментарии:

1. Для этого и нужны ссылки .

Ответ №1:

Похоже, что вы пытаетесь передать std::string в stat . stat является функцией C и, как таковая, принимает только const char * (строку «C») в качестве входных данных.

Используйте .c_str() метод std::string , чтобы получить строку C:

 std::string filename;
...
stat(filename.c_str(), amp;attrib);