c - afplay 错误 : AudioFileOpen failed (-43)

标签 c

代码:

#include<stdio.h>
#include<string.h>

int main (int argc, char *argv[]) {
    char folderPath[1024];
    int i = 0;
    for (i; i < (strlen(argv[0]) - 7); i++) {
        folderPath[i] = argv[0][i];
    }
    printf("Command: afplay %ssong.mp3\n", folderPath);
    system("afplay %ssong.mp3", folderPath);
    return 0;
}

所有输出:

Command: afplay /Users/carloabelli/Desktop/FUNNY/song.mp3
Error: AudioFileOpen failed (-43)

当我从终端运行命令时,它运行良好。我想知道出了什么问题。

最佳答案

system() 不使用格式字符串。它将整个命令作为文字字符串。使用 sprintf() 将命令格式化为缓冲区,然后将该缓冲区发送到系统。

char buf[1024];
snprintf(buf, 1024, "afplay %ssong.mp3", folderPath);
system(buf);

或类似的东西。

关于c - afplay 错误 : AudioFileOpen failed (-43),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14491271/

相关文章:

c - Green Hills Sw小数据区溢出

c++ - C++ 中涉及一元运算符的表达式求值

c++ - RTOS 中第一个任务切换的代码

c - C 结构体的双指针内存分配

c - UDP 数据包未传递 - recvfrom() 永远不会返回

c - 如何测试数字是否存在科学记数法?

c - 无法使用 GNU GCC 在 matlab (Windows) 中编译 C 文件 (MEX)

C99:复数的虚部能否为负零

C比较2个字符串变成了内存分配问题

c - 直接从 C 中的函数调用访问结构元素