abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 14:22 | Nasazení Linuxu

    Článek na Libre Arts představuje baskytarový multiefekt Anagram od společnosti Darkglass Electronics. S Linuxem uvnitř (licence, GitHub).

    Ladislav Hagara | Komentářů: 1
    dnes 10:22 | IT novinky

    Městský soud v Praze vyhlásil rozsudek, který vyhověl žalobě novináře Jana Cibulky, který s podporou spolku IuRe (Iuridicum Remedium) požadoval omluvu od státu za to, že česká legislativa nařizuje operátorům uchovávat metadata o elektronické komunikaci. To je přitom v rozporu s právem. Stát se musí novináři omluvit a zaplatit náklady řízení. Především je ale součástí přelomové rozhodnutí o nelegálnosti shromažďování dat a o

    … více »
    Ladislav Hagara | Komentářů: 2
    dnes 08:22 | IT novinky

    Americké technologické firmy Apple a Meta Platforms porušily pravidla na ochranu unijního trhu, uvedla včera Evropská komise (EK). Firmám proto vyměřila pokutu – Applu 500 milionů eur (12,5 miliardy Kč) a Metě 200 milionů eur (pět miliard Kč). Komise to oznámila v tiskové zprávě. Jde o první pokuty, které souvisejí s unijním nařízením o digitálních trzích (DMA). „Evropská komise zjistila, že Apple porušil povinnost vyplývající z nařízení

    … více »
    Ladislav Hagara | Komentářů: 9
    dnes 08:11 | IT novinky

    Americká společnost OpenAI, která stojí za chatovacím robotem ChatGPT, by měla zájem o webový prohlížeč Chrome, pokud by jeho současný majitel, společnost Google, byl donucen ho prodat. Při slyšení u antimonopolního soudu ve Washingtonu to řekl šéf produktové divize ChatGPT Nick Turley.

    Ladislav Hagara | Komentářů: 0
    dnes 07:55 | Nová verze

    Po roce vývoje od vydání verze 1.26.0 byla vydána nová stabilní verze 1.28.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.28.

    Ladislav Hagara | Komentářů: 0
    dnes 07:44 | Nová verze

    Byla vydána nová verze 10.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 211 vývojářů. Provedeno bylo více než 2 800 commitů. Přehled úprav a nových vlastností v seznamu změn.

    Ladislav Hagara | Komentářů: 0
    včera 16:33 | Komunita

    42 svobodných a otevřených projektů získalo finanční podporu od NLnet Foundation (Wikipedie).

    Ladislav Hagara | Komentářů: 0
    včera 12:22 | IT novinky

    Americký výrobce čipů Intel plánuje propustit více než 20 procent zaměstnanců. Cílem tohoto kroku je zjednodušit organizační strukturu ve firmě, která se potýká s problémy.

    Ladislav Hagara | Komentářů: 9
    včera 05:22 | Nová verze

    Byla vydána OpenMandriva Lx 6.0 s kódovým názvem Vanadium. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 01:44 | Zajímavý článek

    CSIRT.CZ, český národní CERT provozovaný na základě veřejnoprávní správní smlouvy společností CZ.NIC, shrnuje patnáct let svého fungování pod tímto sdružením: CSIRT.CZ – 15 let ve sdružení CZ.NIC.

    Ladislav Hagara | Komentářů: 8
    Jaký filesystém primárně používáte?
     (58%)
     (1%)
     (10%)
     (21%)
     (4%)
     (1%)
     (2%)
     (0%)
     (1%)
     (2%)
    Celkem 442 hlasů
     Komentářů: 18, poslední 17.4. 12:41
    Rozcestník

    Dotaz: C a getopt

    5.11.2010 22:19 Jozef G
    C a getopt
    Přečteno: 833×

    Dobry den, dalsia otazka z mojej strany :)

    int c; char* str;

    while ((c=getopt(argc, argv, "hl:")) != -1) {
    switch (c) {
    case 'l': str = malloc(strlen(optarg));
    strcpy(str, optarg);
    break;
    default: usage();
    return 0;
    }

    Pokial spustim program ./test alebo ./test nieco_bez_pomlcky, tak dostanem segmentation fault. Ak zadam ./test -nieco, tak to funguje spravne. Je toto standardne spravanie getopt, alebo mam ja nieco zle?

    Odpovědi

    5.11.2010 22:37 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: C a getopt

    Nevím, jestli tam není ještě jiný problém, ale určitě máte chybu v alokaci paměti - na řetězec potřebujete alokovat o jeden byte víc, než je jeho délka (nebo rovnou použít strdup()). A také tam nikde nevidím, že byste tu paměť vracel, ale to samozřejmě segfault nezpůsobí.

    Ale váš problém bude asi někde jinde než v tomhle kusu kódu, protože v případech, kdy vám to segfaultuje, byste se do této větve vůbec neměl dostat. Zkuste si to pustit v debuggeru a uvidíte přesně, kde vám to padá.

    5.11.2010 22:52 Jozef G
    Rozbalit Rozbalit vše Re: C a getopt
    Nj to je vidiet, ze robim hlavne C++, v tom stringu mi chyba miesto na ukoncovaciu nulu, ale pamat samozrejme uvolnujem dalej v kode. Problem je, ze getopt zomrie skor ako stihne nieco spravit.
    5.11.2010 23:03 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: C a getopt

    Jak říkám, problém bude někde jinde. Buď si to pusťte v debuggeru nebo sem dejte ten zdrojá celý (jako přílohu).

    Ještě praktická poznámka: na ukázky kódu používejte element pre, je to přehlednější.

    6.11.2010 00:18 Messa | skóre: 39 | blog: Messa
    Rozbalit Rozbalit vše Re: C a getopt
    Neinicializová proměnná str (v případě, že v parametrech není žádné -l)?
    6.11.2010 00:38 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: C a getopt
    V tom případě se do té větve vůbec nedostane.
    6.11.2010 16:16 Messa | skóre: 39 | blog: Messa
    Rozbalit Rozbalit vše Re: C a getopt
    Jo, pravda, ale i pokud dostane, je celá proměnná str dost na houby. Dokud se tazatel neuráčí poskytnout větší část zdrojového kódu, těžko mu jinak radit.

    Taky není kontrolována návratová hodnota malloc. I když na tom to zde selhávat asi nebude.
    6.11.2010 09:10 mato
    Rozbalit Rozbalit vše Re: C a getopt
    ak ratam, ze si zabudol len chybou copy-paste zobrat aj } na uzavretie cyklu, tak mne to funguje v poriadku (fbsd)

    tak ako ti bolo povedane, skompiluj to s -g option-ov, spusti to a po segfaultovani spust gdb ./test test.core a gdb command where ti povie, kde nastal problem

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.