fgetws
Michal Vanka
junk.mv na gmail.com
Pondělí Srpen 29 21:58:21 CEST 2022
Jestli to neni tim, ze kodovani UTF-8 neni 16 bitove...
Viz:
https://en.wikipedia.org/wiki/UTF-8
On Mon, Aug 29, 2022 at 9:31 PM <spam na nagano.cz> wrote:
> Pripadne mi podezrela kombinace wchar_t a utf8. Zkuste vyhodit vse
> 16bitove.
> L.
>
> Sent from MailDroid <https://goo.gl/ODgwBb>
>
> -----Original Message-----
> From: Michal Grunt <michal.grunt na gmail.com>
> To: HW-news <hw-list na list.hw.cz>
> Sent: po, 29 srp 2022 20:27
> Subject: fgetws
>
> Jsem v koncích. Lámu si s tím hlavu už několik hodin. Po překladu (gcc
> na RPi) a spuštění to hlásí chybu: Neoprávněný přístup do paměti
> (SIGSEGV)
>
> Havaruje to na fgetws...
>
> Příkaz "mpc status | head -n 1" vrátí název stanice nebo interpreta a
> to v UTF 8 formátu (diakritika).
>
> Co dělám špatně? Zkoušel jsem nad tím i usilovně přemýšlet :-), ale
> ani to nepomohlo. Metoda pokus omyl (co najdu po internetu) je také
> selhala. Níže je uveden jeden z mnoha pokusů.
>
> Blbý je, že se to ani nedá nějak pořádně debugovat nebo to neumím (na
> RPi a přístup přes SSH na konzoli).
>
> Děkuji
> MG
>
> #define BUF_LEN 255
> static wchar_t szwBuffer[BUF_LEN];
>
> setlocale(LC_CTYPE, "en.UTF-8");
>
> fp = popen( "mpc status | head -n 1", "r");
> if (fp == NULL) {
> printf("Failed to run command\n" );
> exit(1);
> }
>
> fwide(fp,1);
> while (fgetws(szwBuffer, sizeof(szwBuffer)/sizeof(wchar_t), fp) !=
> (wchar_t *)NULL);
>
> wprintf( L"%s\n", szwBuffer);
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20220829/e2532864/attachment.htm>
Další informace o konferenci Hw-list