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í
×
včera 23:33 | Zajímavý software

Byl vydán ShellCheck ve verzi 0.4.6. Jedná se o nástroj pro statickou analýzu shellových skriptů. Shellové skripty lze analyzovat na webové stránce ShellChecku, v terminálu nebo přímo z textových editorů. Příklady kódů, na které analýza upozorňuje a doporučuje je přepsat. ShellCheck je naprogramován v programovacím jazyce Haskell. Zdrojové kódy jsou k dispozici na GitHubu pod licencí GPLv3.

Ladislav Hagara | Komentářů: 0
včera 23:33 | Pozvánky

Czech JBoss User Group zve na setkání JBUG v Brně, které se koná ve středu 5. dubna 2017 v prostorách Fakulty informatiky Masarykovy univerzity v místnosti A318 od 18:00. Přednáší Pavol Loffay na téma Distributed Tracing and OpenTracing in Microservice Architecture.

… více »
mjedlick | Komentářů: 0
včera 11:33 | Zajímavý článek

Národní centrum kybernetické bezpečnosti (NCKB) vypracovalo (pdf) 26 podrobných bezpečnostních doporučení pro síťové správce. Tato doporučení jsou nastavena tak, aby je bylo možné aplikovat v každé instituci. Jsou rozdělena na tři základní části: bezpečnost infrastruktury, bezpečnost stanic a serverů a bezpečnost uživatelů.

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

Prezident Nadace pro svobodný software (FSF) Richard M. Stallman vyhlásil na slavnostním ceremoniálu v rámci konference LibrePlanet 2017 vítěze Free Software Awards za rok 2016. Ocenění za společenský přínos získal SecureDrop (Wikipedie). Za rozvoj svobodného softwaru byl oceněn Alexandre Oliva (Wikipedie).

Ladislav Hagara | Komentářů: 0
včera 04:44 | Nová verze

Byla vydána verze 0.7.0 debugovacího nástroje cgdb. Mezi novinky patří například zvýrazňování syntaxe jazyka Rust. Podrobnosti v poznámkách o vydání.

Neel | Komentářů: 0
25.3. 22:00 | Komunita

Portál Stack Overflow po roce opět vyzpovídal své uživatele, jedná se především o vývojáře softwaru, a zveřejnil (podcast) detailní výsledky průzkumu. Průzkumu se letos zúčastnilo více než 64 tisíc vývojářů. Jejich nejmilovanější platformou je linuxový desktop. Ten je také druhou nejpoužívanější platformou vývojářů.

Ladislav Hagara | Komentářů: 7
24.3. 11:55 | Komunita

Vývojový tým OpenSSL ve spolupráci s iniciativou Core Infrastructure konsorcia Linux Foundation spustil proces přelicencování této kryptografické knihovny ze současné licence na licenci Apache Licence v 2.0 (ASLv2). Nová licence usnadní začleňování OpenSSL do dalších svobodných a open source projektů. Všichni dosavadní vývojáři OpenSSL (Authors) obdrží v následujících dnech email s prosbou o souhlas se změnou licence.

Ladislav Hagara | Komentářů: 32
24.3. 01:11 | Komunita

Před třemi týdny Mozilla.cz představila projekt Photon, jehož cílem je návrh a implementace nového vzhledu Firefoxu. Včera zveřejnila první náhled vzhledu Photon. Práce na projektu Photon jsou rozděleny do pěti týmů, které celkem čítají 19 lidí. Zaměřují se na zlepšení prvního spuštění Firefoxu a zaujetí nových uživatelů, celkovou úpravu vzhledu, zlepšení animací, zrychlení odezvy uživatelského rozhraní a také upravení nabídek. Vývoj lze sledovat v Bugzille.

Ladislav Hagara | Komentářů: 50
23.3. 20:00 | Komunita

OneDrive pro firmy je již ve webových prohlížečích na Linuxu stejně rychlý jako na Windows. Microsoft opravil chybu z listopadu loňského roku. OneDrive pro firmy běžel na Linuxu mnohem pomaleji než na Windows. V popisu chyby bylo uvedeno, že stačilo v prohlížeči na Linuxu nastavit v user-agentu Windows a vše se zrychlilo. Odpovědí Microsoftu bylo (Internet Archive: Wayback Machine), že Linux není podporován. Po bouřlivých diskusích na redditu i Hacker News byla chyba nalezena a opravena.

Ladislav Hagara | Komentářů: 9
23.3. 19:00 | Zajímavý projekt

Byla vyhlášena soutěž Hackaday Prize 2017. Soutěž je určena vývojářům open source hardwaru. Pro výherce je připraveno celkově 250 tisíc dolarů. Každý ze 120 finalistů získá tisíc dolarů. Nejlepší pak navíc 50, 30, 20, 15, 10 a 5 tisíc dolarů. Jedná se již o čtvrtý ročník soutěže. V roce 2014 zvítězil projekt globální sítě open source pozemních satelitních stanic SatNOGS. V roce 2015 zvítězil open source systém pro řízení elektrických invalidních vozíků pohybem očí Eyedriveomatic. V roce 2016 zvítězil modulární robot Dtto.

Ladislav Hagara | Komentářů: 0
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (14%)
 (2%)
 (71%)
 (3%)
 (10%)
Celkem 947 hlasů
 Komentářů: 72, poslední 1.3. 11:16
    Rozcestník

    Dotaz: porovnavani souboru

    3.5.2005 19:47 Bobr
    porovnavani souboru
    Přečteno: 52×
    Dobry den, predelavam jeden program na linux a potreboval bych poradit jak porovnavat 2 binarni soubory v C.Chtel bych pouzit fce fread a pak memcmp pro porovnani bufferu. Sice jsem neco zkousel ale vzdy neuspesne. Pokousel jsem se i neco vyguglit ale taky neuspesne. Volat externi program (diff) take nemohu pac pozdeji budu muset program prekompilovat i na windows. Dekuji vsem za rady. S pozdravem Bobrik

    Odpovědi

    3.5.2005 19:51 Michal Kubeček
    Rozbalit Rozbalit vše Re: porovnavani souboru
    Ach jo. To je jako házet hrách na stěnu. Co jste zkoušel? Co to znamená neúspěšně?
    3.5.2005 19:59 Bobr
    Rozbalit Rozbalit vše Re: porovnavani souboru
      #define BLOCK_SIZE 1024
      char block1[BLOCK_SIZE];
      char block2[BLOCK_SIZE];
      FILE *fr1, *fr2;
      int readed;
      int same_file = 0;
    
      fr1= fopen(config_file,"rb");
      fr2= fopen("temp_config_bin","rb");
    
      while( ((readed = fread(block1, sizeof(char), BLOCK_SIZE, fr1) ) == BLOCK_SIZE) ){
       if( fread(block2, sizeof(char), BLOCK_SIZE, fr2) == BLOCK_SIZE ){
        if( memcmp(block1, block2, BLOCK_SIZE) != 0 ){
         same_file = 1;
        }
       } else {
        same_file = 1;
        if(ferror(fr2) != 0)
         printf("%s: error: can't read file temp_config_bin !\n", prog_name);
       }
      }
    
    Yin avatar 3.5.2005 20:11 Yin | skóre: 39 | blog: Yinotopia | Slovesnko, Košice
    Rozbalit Rozbalit vše Re: porovnavani souboru
    #define BUF_SIZE 1024
    FILE *fr1, *fr2;
    char buf1[BUF_SIZE], buf2[BUF_SIZE];
    size_t rs1, rs2;
    int same_files = 1;

    fr1 = fopen...
    fr2 = fopen...

    while(!(feof(fr1) || feof(fr2))) {
      rs1 = fread(buf1, sizeof(char), BUF_SIZE, fr1);
      rs2 = fread(buf2, sizeof(char), BUF_SIZE, fr2);

      if(rs1 != rs2 || memcmp(buf1, buf2, BUF_SIZE) != 0) {
        same_files = 0;
        break;
      }
    }
    Nikdy nie je tak zle, aby to jeden poharik nemohol ešte zhorsiť.
    3.5.2005 20:25 Michal Kubeček
    Rozbalit Rozbalit vše Re: porovnavani souboru
    V tom porovnání byste jako třetí argument memcmp měl použít rs1 (nebo rs2), jinak budete u posledního bloku (není-li délka souboru násobkem BUF_SIZE) porovnávat i části bufferů, do kterých se nic nenačetlo. Pokud bude poslední blok zároveň prvním (délka souborů stejná a menší než BUF_SIZE), může se stát, že váš program označí stejné soubory za různé.

    P.S. sizeof(char) je vždy 1, je to definováno normou; a z hlediska efektivity bude vhodnější fread(buf1, BUF_SIZE, 1, fr1) než fread(buf1, 1, BUF_SIZE, fr1)

    Yin avatar 3.5.2005 20:35 Yin | skóre: 39 | blog: Yinotopia | Slovesnko, Košice
    Rozbalit Rozbalit vše Re: porovnavani souboru
    dobry postreh... ale aby som uplne chapal... ak zmenim poradie tych dvoch, precita sa naraz 1-krat 'kus dat' o dlzke BUF_SIZE.. ak nie bude sa citat BUF_SIZE-krat 'kus dat' o dlzke 1?
    Nikdy nie je tak zle, aby to jeden poharik nemohol ešte zhorsiť.
    3.5.2005 20:39 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: porovnavani souboru
    Glibc to čte stejně po čtyřech kilech (resp. asi po PAGE_SIZE) :-)
    3.5.2005 20:46 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: porovnavani souboru
    Hledat se mi to teď nechce, prostě
    info '(libc)Stream Buffering'
    
    Yin avatar 3.5.2005 20:30 Yin | skóre: 39 | blog: Yinotopia | Slovesnko, Košice
    Rozbalit Rozbalit vše Re: porovnavani souboru
    hned na zaciatku by si mohol urobit stat() na tie dve subory, zistit ich velkosti a porovnat ich. A taktiez by si mohol z struct stat vytiahnut velkost bloku suboru na danom fs a tym (mozno aj rapidne) urychlit citanie.

    #import <sys/stat.h>
    struct stat sb1, sb2;
    size_t buf_size;

    stat(filename1, &sb1);
    stat(filename2, &bs2);

    if(sb1.st_size == sb2.st_size) {
      buf_size = sb1.st_blksize;
      
      // dynamicky alokovat buf a buf2, napr. cez alloca()
      // zvysok codu (fopen, while, fclose)
    } else {
      same_files = 0;
    }
    Nikdy nie je tak zle, aby to jeden poharik nemohol ešte zhorsiť.
    3.5.2005 20:00 Bobr
    Rozbalit Rozbalit vše Re: porovnavani souboru
    Stale to i 2 stejne soubory, vyhodi jako jine
    3.5.2005 21:54 Bobr
    Rozbalit Rozbalit vše Re: porovnavani souboru
    Tak uz se mi to s pomoci vas vsech povedlo naprogramovat.Prikladam sem jeste cely kod pokud by nekdo jiny resil stejny problem. Jeste jednou vam vsem velice dekuji za pomoc. Bobrik.
    #include <stdio.h>
    #include <stdlib.h>
    #include <sys/stat.h>
    
    int main(int argc, char *argv[])
    {
      FILE *fr1, *fr2;
      char *buf1, *buf2;
      size_t rs1, rs2;
      int same_files = 1;
      struct stat sb1, sb2;
      size_t buf_size;
      
      stat("file1.txt", &sb1);
      stat("file2.txt", &sb2);
    
      if(sb1.st_size == sb2.st_size) {
                    
        buf_size = sb1.st_size;
       
        buf1= alloca(buf_size);
        buf2= alloca(buf_size);
       
        fr1 = fopen("file1.txt","rb");
        fr2 = fopen("file2.txt","rb");
    
        while(!(feof(fr1) || feof(fr2))) {
                          
          rs1 = fread(buf1, sizeof(char), buf_size, fr1);
          rs2 = fread(buf2, sizeof(char), buf_size, fr2);
    
          if(rs1 != rs2 || memcmp(buf1, buf2, buf_size) != 0) {
            same_files = 0;
            break;
          }
    
        }
       
        fclose(fr1);
        fclose(fr2);    
            
      } else {
        same_files= 0;
        printf("Size is not the same.\n");
        system("PAUSE");
        exit(0);
      }  
      same_files?printf("The file is not different\n"):printf("The file is different\n");
      system("PAUSE");	
      return 0;
    }
    

    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.