gpt4 book ai didi

时间:2019-03-08 标签:c++cgifilestreaming

转载 作者:太空宇宙 更新时间:2023-11-04 12:08:49 24 4
gpt4 key购买 nike

我一直在尝试通过 cgi 提供二进制文件(例如 mp3 文件)。关键是我想让文件只能通过特殊脚本访问,而不是通过网络服务器本身访问。直到现在我得到:

int main() {
cgiWriteEnvironment("/CHANGE/THIS/PATH/capcgi.dat");
cgiHeaderContentType("audio/mpeg");

FILE *fp;
fp=fopen("D:/something.mp3", "r");
char buffer[4];

while (!feof(fp)) {
fread(buffer, 4, 1, fp);
printf("%x",buffer);
}


return 0;
}

它正在向 stdout 输出一些内容,浏览器正在尝试打开 vlc(因此 header 应该是正确的...)但是播放器无法处理数据 :-(

最佳答案

您正在将 .mp3 文件编码为十六进制,即一系列 ASCII 0 和 4 以及 C 等等。您需要 fwrite(),它将保留您正在写入的字节的原始格式。另外:4 字节的缓冲区大小也可以,但我建议改用 4k (4048) 或 8k (8192) 字节。在现代机器上这无关紧要,但对 fread() 的调用(相对)较慢,因此您希望调用次数越少越好。

此外:这是一件很奇怪的事情。你想解决什么问题,为什么普通的网络服务器不能解决它?

关于时间:2019-03-08 标签:c++cgifilestreaming,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10692735/

24 4 0