0
我正在開發一個文件模糊器,用於改變音樂文件並將它們提供給iTunes。我已經開發了用於改變音樂文件的代碼,但我想使用多個音樂文件來增加代碼覆蓋率。所以我想遍歷我的iTunes庫並將文件路徑加載到緩衝區或文件中;無論哪種方式就足夠了。我在這裏有代碼函數的段錯誤。將fts(3)的輸出寫入文件
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <errno.h>
#include <fts.h>
int compare (const FTSENT**, const FTSENT**);
int main(void)
{
FILE * musicPaths;
musicPaths = fopen("Users/NahNig/music_paths", "wb");
char *p1 = "/Users/NahNig/Music/iTunes/iTunes Media/Music";
char *p2 = NULL;
char *path[1];
path[0] = p1;
path[1] = p2;
FTS* file_system = NULL;
FTSENT* child = NULL;
FTSENT* parent = NULL;
file_system = fts_open(path, FTS_COMFOLLOW | FTS_NOCHDIR, &compare);
if (NULL != file_system)
{
while((parent = fts_read(file_system)) != NULL)
{
child = fts_children(file_system,0);
if (errno != 0)
{
perror("fts_children");
}
while ((NULL != child)
&& (NULL != child->fts_link))
{
child = child->fts_link;
fprintf(musicPaths, "%s%s\n", child->fts_path, child->fts_name);
}
}
fts_close(file_system);
}
return 0;
}
int compare(const FTSENT** one, const FTSENT** two)
{
return (strcmp((*one)->fts_name, (*two)->fts_name));
}
我一直在使用的sscanf和fprintf寫孩子一個緩衝和fwrite嘗試寫入文件試圖;他們都沒有工作。我在谷歌上找到的東西也沒有太多幫助,所以任何幫助將不勝感激。