C++ mplayer不';我突然不喜欢波本了?
几天来一直为波本的一个问题而苦恼 守则:C++ mplayer不';我突然不喜欢波本了?,c++,linux,popen,mplayer,C++,Linux,Popen,Mplayer,几天来一直为波本的一个问题而苦恼 守则: int main(){ FILE *fp = popen("mplayer /home/linaro/Music/cp.mp3", "r"); char buffer[1028]; while (fgets(buffer, 1028, fp) != NULL) { std::cerr<<buffer; } pclose(fp); fp = 0; return 0; intmain(){ 文件*fp=popen(“mplaye
int main(){
FILE *fp = popen("mplayer /home/linaro/Music/cp.mp3", "r");
char buffer[1028];
while (fgets(buffer, 1028, fp) != NULL)
{
std::cerr<<buffer;
}
pclose(fp);
fp = 0;
return 0;
intmain(){
文件*fp=popen(“mplayer/home/linaro/Music/cp.mp3”,“r”);
字符缓冲区[1028];
while(fgets(缓冲区,1028,fp)!=NULL)
{
没有声音。音频:没有声音
视频:没有视频
同样,如果我将它通过popen执行的确切命令复制并粘贴到控制台中,它就会开始播放。如果通过-ao-alsa,-ao-pulse,-ao-oss也会失败,这让我完全难堪。任何帮助都将不胜感激
编辑:
Linux就是linaro,基于Ubuntu12.04,使用arm CPU,正如Jonas和alk所建议的那样——权限。在这一过程中,有些东西改变了它的运行方式,但最终肮脏的修复只是包括
su - user -c ' mplayer ... '
到正在调用的行。我看到许多权限被拒绝的错误。如何启动您的C程序?如果您使用bash脚本重新启动您的C程序,会发生什么情况?另外,请添加您正在使用的确切linux发行版本,以及SELinux或AppArmor是否参与其中。来自man popen()
:“此命令传递给/bin/sh"那么,在您的测试环境中,/bin/sh
是从什么开始的呢?乔纳斯:我正在用sudo执行它,但是mplayer本身从终端运行,有sudo也有,没有sudo。@alk不知道如何回答。如果您认为有帮助的话,我可以做一个printenv。最奇怪的是,它最初工作,然后停止。更新了将Linux版本包括在内