<div>Pripadne mi podezrela kombinace wchar_t a utf8. Zkuste vyhodit vse 16bitove.<br/>
L.<br/>
<br/>
<font color="#888888"><font color="#888888">Sent from </font><font color="#888888"><a href="https://goo.gl/ODgwBb">MailDroid</a></font></font><br/><br/>-----Original Message-----<br/>From: Michal Grunt <michal.grunt@gmail.com><br/>To: HW-news <hw-list@list.hw.cz><br/>Sent: po, 29 srp 2022 20:27<br/>Subject: fgetws<br/><br/></div>Jsem v koncích. Lámu si s tím hlavu už několik hodin. Po překladu (gcc <br/>
na RPi) a spuštění to hlásí chybu: Neoprávněný přístup do paměti <br/>
(SIGSEGV) <br/>
<br/>
Havaruje to na fgetws... <br/>
<br/>
Příkaz "mpc status | head -n 1" vrátí název stanice nebo interpreta a <br/>
to v UTF 8 formátu (diakritika). <br/>
<br/>
Co dělám špatně? Zkoušel jsem nad tím i usilovně přemýšlet :-), ale <br/>
ani to nepomohlo. Metoda pokus omyl (co najdu po internetu) je také <br/>
selhala. Níže je uveden jeden z mnoha pokusů. <br/>
<br/>
Blbý je, že se to ani nedá nějak pořádně debugovat nebo to neumím (na <br/>
RPi a přístup přes SSH na konzoli). <br/>
<br/>
Děkuji <br/>
MG <br/>
<br/>
#define BUF_LEN 255 <br/>
static wchar_t szwBuffer[BUF_LEN]; <br/>
<br/>
setlocale(LC_CTYPE, "en.UTF-8"); <br/>
<br/>
fp = popen( "mpc status | head -n 1", "r"); <br/>
if (fp == NULL) { <br/>
   printf("Failed to run command\n" ); <br/>
   exit(1); <br/>
} <br/>
<br/>
fwide(fp,1); <br/>
while (fgetws(szwBuffer, sizeof(szwBuffer)/sizeof(wchar_t), fp) != <br/>
(wchar_t *)NULL); <br/>
<br/>
wprintf( L"%s\n", szwBuffer); <br/>
_______________________________________________ <br/>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz">www.HW.cz</a> <br/>
<a href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a> <br/>
<a href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a> <br/>