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:44 | Nová verze

Byla vydána nová verze 42.3 linuxové distribuce openSUSE Leap. Jedná se už o třetí vydání, které staví na SUSE Linux Enterprise (SLE). Výchozím jádrem je opět poslední LTS verze, tedy řada 4.4. Podrobnosti v oznámení o vydání a v poznámkách k vydání.

Ladislav Hagara | Komentářů: 13
dnes 14:30 | Nová verze

Google Chrome 60 byl prohlášen za stabilní. Nejnovější stabilní verze 60.0.3112.78 tohoto webového prohlížeče přináší řadu oprav a vylepšení. Vylepšeny byly také nástroje pro vývojáře (YouTube). Opraveno bylo 40 bezpečnostních chyb.

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

Společnosti Adobe, Apple, Facebook, Google, Microsoft a Mozilla společně oznámily konec Flashe. Podpora Flashe oficiálně skončí na konci roku 2020.

Ladislav Hagara | Komentářů: 14
včera 05:55 | Komunita

Před 10 lety, v červenci 2007, se začal prodávat svobodný chytrý telefon Neo 1973 (vnitřní označení GTA01). Za jeho vývojem stáli vývojáři projektu Openmoko (Wikipedie). O rok později bylo možné koupit jejich druhý telefon Neo FreeRunner (GTA02). V roce 2011 byl představena platforma GTA04. Tuto platformu využívá také projekt Neo900, jehož cílem je vývoj nástupce telefonu Nokia N900. Nahlédnutí do historie Openmoko a další informace v článku na Vanille.de [Hacker News].

Ladislav Hagara | Komentářů: 23
včera 04:44 | Komunita

Tým Debianu zabývající se reprodukovatelnými sestaveními (Reproducible Builds), tj. kdokoli může nezávisle ověřit, že daný binární .deb balíček vznikl překladem daných zdrojových kódů, oznámil, že 94 % balíčků Debianu lze přeložit a sestavit reprodukovatelně. V únory 2015 to bylo 83 % [reddit].

Ladislav Hagara | Komentářů: 4
24.7. 11:22 | Komunita

Mozilla.cz informuje, že na blogu Mozilly věnovaném bezpečnosti byly zveřejněny výsledky bezpečnostního auditu služby Firefox Accounts, v českých překladech účet Firefoxu, sloužící hlavně k přihlašování k synchronizaci Firefox Sync. Nalezeno bylo celkem 15 bezpečnostních chyb, z toho jedna byla označena jako kritická a tři jako vážné.

Ladislav Hagara | Komentářů: 0
24.7. 11:00 | Nová verze

Byla vydána první stabilní verze 1.0 svobodného komunikačního softwaru Ring (Wikipedie). Ring, původně SFLphone, je součástí projektu GNU [reddit].

Ladislav Hagara | Komentářů: 3
24.7. 06:00 | Zajímavý projekt

Warner Skoch na svých stránkách zveřejnil návod (YouTube) na zhotovení kapesní herní konzole MintyPi. Konzole MintyPi je postavena na Raspberry Pi Zero W a RetroPie. Jako obal slouží plechová krabička od mentolek.

Ladislav Hagara | Komentářů: 0
23.7. 02:00 | Nová verze

Byl vydán Debian 9.1, tj. první opravná verze Debianu 9 s kódovým názvem Stretch a Debian 8.9, tj. devátá opravná verze Debianu 8 s kódovým názvem Jessie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 9 a Debianu 8 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

Ladislav Hagara | Komentářů: 38
22.7. 15:50 | Zajímavý článek

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice zveřejnila čtyřiačtyřicetistránkovou výroční zprávu za rok 2016. K dispozici je ve formátu pdf ve vysokém (21,68 MB) a nízkém (7,1 MB) rozlišení. Zpráva byla vytvořena ve Scribusu.

Ladislav Hagara | Komentářů: 0
Těžíte nějakou kryptoměnu?
 (4%)
 (2%)
 (20%)
 (74%)
Celkem 105 hlasů
 Komentářů: 6, poslední dnes 18:53
    Rozcestník

    Dotaz: Escapované znaky jako argumenty v shellu a C

    15.9.2005 22:37 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Escapované znaky jako argumenty v shellu a C
    Přečteno: 28×
    Existuje nějaká funkce v C, která dokáže nahradit řetězec "\n" znakem konec řádku '\n' (samozřejmě i ostatní backslashed sekvence, jako '\t', ...)? Problém je, že parametry v shellu se předávají tímto způsobem - pokud chci konec řádku '\n', dostanu dva znaky '\' a 'n'.

    Tj. mám program foo -o "x=%x\ny=%y" a textové části se tisknou fputs(f,stdout);. Výstupem je tedy x=3\ny=4.
    When your hammer is C++, everything begins to look like a thumb.

    Odpovědi

    15.9.2005 22:47 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: Escapované znaky jako argumenty v shellu a C
    Takových funkcí je spousta... Ale ve standardní knihovně není žádná, pokud se ptáš na tohle.
    15.9.2005 22:51 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Escapované znaky jako argumenty v shellu a C
    Vzhledem k tomu, že to má být do pingu, tak by se mi hodilo něco pod BSD licencí, jinak si to budu muset napsat sám, nebo tuhle featurku oželet (lsof to taky neumí, jak jsem zjistil).
    When your hammer is C++, everything begins to look like a thumb.
    15.9.2005 23:17 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: Escapované znaky jako argumenty v shellu a C
    Dávám tuto implementaci do public domain. Je asi bugovitá, protože jsem ji právě napsal z hlavy. Neumí \xAB a \012, ale to snad tak nevadí...
    #include <stdio.h>
    #include <string.h>
    
    int
    main(int argc,
         char *argv[])
    {
        while (*(++argv)) {
            const char *s = *argv, *p;
            char c;
    
            while ((p = strchr(s, '\\'))) {
                printf("%.*s", p - s, s);
                s = p+1;
                if (!(c = *s)) {
                    fprintf(stderr, "String ends with a backslash\n");
                    break;
                }
                switch (c) {
                    case '\\': c = '\\'; break;
                    case '0': c = '\0'; break;
                    case 'a': c = '\a'; break;
                    case 'b': c = '\b'; break;
                    case 'e': c = '\x1b'; break;
                    case 'f': c = '\f'; break;
                    case 'n': c = '\n'; break;
                    case 'r': c = '\r'; break;
                    case 't': c = '\t'; break;
                    case 'v': c = '\v'; break;
    
                    default:
                    fprintf(stderr, "Unknown escape `%c'\n", c);
                    break;
                }
                putchar(c);
                s++;
            }
            puts(s);
        }
    
        return 0;
    }
    
    Lepší by bylo něco, co převede string na string -- což v principu lze i printf() funkcemi, ale je to otrava.
    15.9.2005 23:37 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: Escapované znaky jako argumenty v shellu a C
    Vzhledem k uvažovanému použití je ale lepší dělat strcspn(string, "%\\") a expandovat obojí zároveň, jen se musíš rozhodnout, jak interpretovat dva různé escape znaky vedle sebe...
    15.9.2005 22:47 #Tom
    Rozbalit Rozbalit vše Nejsem si jist, jestli jsem to pochopil...
    Napadá mě akorát tohle:
    #include <stdio.h>
    int main() {
      char buffer[128], *p;
      sprintf(buffer, "Ahoj\n");
      for (p = buffer; *p != '\0'; p++)
        printf("%02x ", *p);
      printf("\n");
      return 0;
    }
    
    Vypíše se toto:
    41 68 6f 6a 0a
    
    15.9.2005 22:56 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Nejsem si jist, jestli jsem to pochopil...
    Jde o to, že ze shellu dostanu "Ahoj\\n", tj řetězec o délce 6 se znaky 'A','h','o','j','\\','n'. No a já potřebuji funkci, která nahradí dvojznak "\\n" za konec řádku '\n' - tj, výsledný řetězec bude mít 5znaků (Ahoj+konec řádku).
    When your hammer is C++, everything begins to look like a thumb.
    16.9.2005 00:20 #Tom
    Rozbalit Rozbalit vše Re: Nejsem si jist, jestli jsem to pochopil...
    Tak jsem trošku pozapomněl, co se dělá už při překladu a co za běhu. Tohle už je lepší:
    #include <stdio.h>
    
    int tab[] = {
      -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
      -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
      /* \% */'\%', -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,/* \0 */'\0',-1,-1,-1,
      -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
      -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,'\\',-1,-1,-1,-1,
      /* \a */'\a', /* \b */'\b', -1,-1,/* \e */'\e', /* \f */'\f',
      -1,-1,-1,-1,-1,-1,-1,/* \n */'\n', -1,-1,-1,/* \r */'\r',-1,
      /* \t */'\t', -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
      -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
      -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
      -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
      -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
      -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
      -1,-1,-1,-1,-1,-1,-1,-1,-1 };
    
    char *zpracuj_lomitka(char *str) {
      unsigned char *a, *b;
      if (str == NULL) return NULL;
      for (a = b = str; *a != '\0'; a++, b++)
        if (*a == '\\' && tab[a[1]] >= 0)
          *b = tab[*++a];
        else
          *b = *a;
      *b = '\0';
      return str;
    }
    
    int main() {
      char *p, str[] = "Ahoj!\\a\\b\\e\\f\\n\\r\\t\%\\\\\\0";
      for (p = str; *p != '\0'; p++)
        printf("%02x ", *p);
      printf("\n");
      zpracuj_lomitka(str);
      for (p = str; *p != '\0'; p++)
        printf("%02x ", *p);
      printf("\n");
      return 0;
    }
    
    Přepisuje se přímo zdrojový řetězec. Možná to proto hodí segfault (což udělá určitě, když dám místo str[] jen *str), ale ta funkce by měla být jinak v pořádku.
    15.9.2005 22:51 0
    Rozbalit Rozbalit vše Re: Escapované znaky jako argumenty v shellu a C
    Resim to prostym pouzitim sscanf.
    15.9.2005 23:02 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Escapované znaky jako argumenty v shellu a C
    Mohl bys to, prosím, trochu rozvést? Nějak nevím, jak by mi sscanf mohl pomoci.
    When your hammer is C++, everything begins to look like a thumb.

    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.