libsndfile усекает путь до 512 символов при использовании sf_open

Название говорит само за себя. При записи в файл с длинным путем путь усекается.

string filename="/pathwithmorethan512characters/song.wav";
sf_open(filename.c_str(), SFM_WRITE, &sfinfo);

Есть идеи для обхода?

Я использую Linux с libsndfile.so.1.0.25.

0

Решение

С октября 2014 года на доработке 1.0.26, common.h файл был обновлен, а объем памяти увеличен вдвое.

Теперь вы можете хранить пути до 1024 символов:

#define SF_FILENAME_LEN         (1024)

Соответствующее сообщение об ошибке также обновлено. Этот пример:

#include <stdio.h>
#include <stdlib.h>
#include "sndfile.h"
int main(void)
{
char *inFileName;
SNDFILE *inFile;
SF_INFO inFileInfo;

inFileName = "long_file_name_above_1024_characters.wav";
inFile = sf_open(inFileName, SFM_READ, &inFileInfo);
puts(sf_strerror(inFile));

sf_close(inFile);
return 0;
}

Возвращает:

Ошибка: слишком длинное имя файла

0

Другие решения


По вопросам рекламы [email protected]