0
我試圖在C中讀取.au
文件的頭文件,並且我將所有值存儲在struct
中,但無法將它們轉換爲Little Endian格式。AU文件的讀取頭 - C
我偶然發現了一個方法,ntohl
應該把字節和轉換爲主機格式,但編譯我的程序時不斷收到錯誤。
undefined reference to 'ntohl'
#include <stdio.h>
struct header
{
char magic[5];
int offset;
int size;
int encoding;
int rate;
int channels;
};
int main()
{
FILE *fin, *fout;
struct header au;
char path[10];
printf("Enter name of file to be processed: ");
scanf("%s", path);
fin = fopen(path, "r");
fout = fopen("out.au","w");
fscanf(fin, "%s %d %d %d %d %d", &au.magic, &au.offset, &au.size, &au.encoding, &au.rate, &au.channels);
printf("%s\n%d\n%d\n%d\n%d\n%d\n", au.magic, ntohl(au.offset), ntohl(au.size), ntohl(au.encoding), ntohl(au.rate), ntohl(au.channels));
}
我在報頭值讀數是否正確?