使用sf_open时,libsndfile将路径截断为512个字符

libsndfile truncates path at 512 characters when using sf_open

本文关键字:路径 字符 512个 libsndfile sf open 使用      更新时间:2023-10-16

标题说明了一切。当写入路径较长的文件时,路径会被截断。

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

有什么变通办法吗?

我使用的是带有libsndfile.so.1.0.25的linux。

自2014年10月修订版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;
}

退货:

错误:提供的文件名太长。