Birkaç gün boyunca popen ile ilgili bir sorun üzerinde çarptı.mplayer aniden popolu olmayı sevmiyor mu?
kodu:
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;
}
bir Linaro gömülü denetleyicisinde alışveriş çalıştırıldı. İyiydi, hata yok. Kod basit olsa da (sadece yürütme üzerine bir şarkı söyler ve daha sonra da şarkı söyler) bir düşünürümden daha fazla üzülmeme neden olur.
Komutun kendisini normal bir bash kabuğuna kopyalayıp yapıştırırsam, düzgün çalışır. Ve daha da kötüsü, başka bir yere takılana kadar iyi koştu. Şu anda bir hat jakı ile bir hat çıkışı olmadan önce bağlı olduğundan emin değilim.
Ne olursa olsun, olsun hata bunu kopyalamak ve konsolun içerisine popen aracılığıyla yürütür tam komutu yapıştırın, eğer başlar,
MPlayer svn r34540 (Ubuntu), built with gcc-4.6 (C) 2000-2012 MPlaye4
Team mplayer: could not connect to socket mplayer: No such file or
directory Failed to open LIRC support. You will not be able to use
your remote control.
Playing /home/linaro/Music/cp.mp3 libavformat version 53.21.1
(external) Mismatching header version 53.19.0 Audio only file format
detected. Clip info: Title: The Scientist Artist: Coldplay Album: A
Rush Of Blood To The Head Year: 2002 Comment: Genre: Unknown Load
subtitles in /home/linaro/Music/ Requested audio codec family [mpg123]
(afm=mpg123) not available. Enable it at compilation. Opening audio
decoder: [ffmpeg] FFmpeg/libavcodec audio decoders libavcodec version
53.35.0 (external) Mismatching header version 53.32.2 AUDIO: 44100 Hz, 2 ch, floatle, 256.0 kbit/9.07% (ratio: 32002->352800) Selected audio
codec: [ffmp3float] afm: ffmpeg (FFmpeg MPEG layer-3 audio) Home
directory not accessible: Permission denied AO: [pulse] Init failed:
Connection refused Failed to initialize audio driver 'pulse' Home
directory not accessible: Permission denied [AO_ALSA] alsa-lib:
pcm_hw.c:1293:(snd_pcm_hw_open) open '/dev/snd/pcmC1D0p' failed (-22):
Invalid argument [AO_ALSA] Playback open error: Invalid argument
Failed to initialize audio driver 'alsa' [AO SDL] Samplerate: 44100Hz
Channels: Stereo Format floatle [AO SDL] using aalib audio driver. [AO
SDL] Unsupported audio format: 0x1d. [AO SDL] Unable to open audio: No
available audio device Failed to initialize audio driver 'sdl:aalib'
Could not open/initialize audio device -> no sound. Audio: no sound
Video: no video
Yine (ilgili bölüme aşağı özetlenmiştir) olduğu çalıştırdığınızda oynarken. Eğer beni tamamen şaşırtmışsa, -ao alsa, -ao nabız, -ao oss olursa, başarısız olur. Herhangi bir yardım takdir edilecektir!
Düzenleme: Linux Jonas ve alk önerildiği gibi olmak yara kol CPU
İzin verilen birçok izin reddedildi. C programına nasıl başlarsın? C programınızı aynısını yapan bir bash betiği ile değiştirirseniz ne olur? Ayrıca, kullandığınız hangi kesin linux dağıtım sürümünü ve SELinux veya AppArmor oyundaysa lütfen ekleyin. –
'adamdan popen()': "* Bu komut/bin/sh * 'ye geçirilir." Yani test ortam ağında '/ bin/sh' ne başlar? – alk
Jonas: Bunu sudo ile yapıyorum, ancak mplayer terminalden kendi başına ve sudo olmadan çalışıyor. – M4rc