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

    ESP-IDF (Espressif IoT Development Framework), tj. oficiální vývojový framework pro vývoj aplikací na mikrokontrolérech řady ESP32, byl vydán v nové verzi 6.0. Detaily na portálu pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    dnes 12:33 | Nová verze

    DeepMind (Alphabet) představila novou verzi svého multimodálního modelu, Gemma 4. Modely jsou volně k dispozici (Ollama, Hugging Face a další) ve velikostech 5-31 miliard parametrů, s kontextovým oknem 128k až 256k a v dense i MoE variantách. Modely zvládají text, obrázky a u menších verzí i audio. Modely jsou optimalizované pro běh na desktopových GPU i mobilních zařízeních, váhy všech těchto modelů jsou uvolněny pod licencí Apache 2.0. Návod na spuštění je už i na Unsloth.

    NUKE GAZA! 🎆 | Komentářů: 1
    dnes 03:55 | Nová verze

    Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 3. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).

    Ladislav Hagara | Komentářů: 0
    včera 19:55 | Zajímavý projekt

    Průkopnická firma FingerWorks kolem roku 2000 vyvinula vícedotykové trackpady s gesty a klávesnice jako TouchStream LP. V roce 2005 ji koupil Apple, výrobu těchto produktů ukončil a dotykové technologie využil při vývoji iPhone. Multiplatformní projekt Apple Magic TouchstreamLP nyní implementuje funkcionalitu TouchStream LP na současném Apple Magic Trackpad, resp. jejich dvojici. Diskuze k vydání probíhá na Redditu.

    |🇵🇸 | Komentářů: 0
    včera 18:22 | Nová verze

    Byla vydána nová verze 10.3 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu bezpečnostních oprav, vylepšení funkcí a oprav chyb.

    Ladislav Hagara | Komentářů: 0
    včera 15:11 | Zajímavý software

    Cloudflare představil open source redakční systém EmDash. Jedná se o moderní náhradu WordPressu, která řeší bezpečnost pluginů. Administrátorské rozhraní lze vyzkoušet na EmDash Playground.

    Ladislav Hagara | Komentářů: 4
    včera 14:00 | Komunita

    Bratislava OpenCamp 2026 zverejnil program a spustil registráciu. Štvrtý ročník komunitnej konferencie o otvorených technológiách prinesie 19 prednášok na rôzne technologické témy. Konferencia sa uskutoční v sobotu 25. apríla 2026 v priestoroch FIIT STU v Bratislave.

    Ladislav Hagara | Komentářů: 1
    včera 13:44 | Humor

    Na iVysílání lze zhlédnout všechny díly kultovního sci-fi seriálu Červený trpaslík.

    Ladislav Hagara | Komentářů: 5
    včera 04:44 | IT novinky

    Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu dosáhl v březnu 5,33 % (Windows -4,28 %, OSX +1,19 %, Linux +3,10 %). Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 24,48 %. Procesor AMD používá 67,48 % hráčů na Linuxu.

    Ladislav Hagara | Komentářů: 4
    1.4. 23:22 | IT novinky

    Společnost Apple slaví padesáté narozeniny. Založena byla 1. dubna 1976.

    Ladislav Hagara | Komentářů: 2
    Které desktopové prostředí na Linuxu používáte?
     (15%)
     (7%)
     (1%)
     (12%)
     (30%)
     (3%)
     (5%)
     (1%)
     (14%)
     (23%)
    Celkem 1213 hlasů
     Komentářů: 30, poslední dnes 20:20
    Rozcestník

    Administrace komentářů

    Jste na stránce určené pro řešení chyb a problémů týkajících se diskusí a komentářů. Můžete zde našim administrátorům reportovat špatně zařazenou či duplicitní diskusi, vulgární či osočující příspěvek a podobně. Děkujeme vám za vaši pomoc, více očí více vidí, společně můžeme udržet vysokou kvalitu AbcLinuxu.cz.

    Příspěvek
    30.1.2014 20:52 tomes.io | skóre: 12 | blog: tomesh
    Rozbalit Rozbalit vše Re: C - lze poslat soubor i zpravu na server soucasne?
    Tak jsem se pustil do implementace, ale pada mi to na strane serveru pri fwrite. Je zajimave, ze v netbeans to nepada.

    Klient posila zpravy touto funkci. message je zprava s cestou k souboru (obsahuje pridavne informace a flagy) a path je samotna cesta k souboru. Cilem teto fce je dat dohromady message a obsah souboru a poslat to na server:
    strcat(buf,fbuffer);
    Zprava je ve tvaru:
    flag:je_adresar:delka_nazvu_domovskeho_adresare:delka_cesty:cesta/k/souboru:soubor
    void send_msg(char *message, char *path) {
            
        int len;
        char buf[1024];
        FILE *file;
        char *fbuffer;
        unsigned long fileLen;
    
        strcpy(buf, message);
    
        file = fopen(path, "rb");
        if (!file)
        {
            fprintf(stderr, "Unable to open file %s", message);
            return;
        }
    
        fseek(file, 0, SEEK_END);
        fileLen=ftell(file);
        fseek(file, 0, SEEK_SET);  
        fbuffer=(char *)malloc(fileLen+1);
        if (!fbuffer)
        {
            fprintf(stderr, "Memory error!");
            fclose(file);
            return;
        }
        
        fread(fbuffer, fileLen, 1, file);
        fclose(file);  
        strcat(buf,fbuffer);   
        len = strlen(buf);
        buf[len++] = '\n';
        buf[len] = '\0';
        send(sockfd, buf, strlen(buf), 0);  
        free(fbuffer);
        free(message);
        message = NULL;
    }
     
    
    
    Server zpravu prijime a cely buffer posle na zpracovani do fce, handle_msg, kde se vse rozparsuje (ty printf tam mam zatim jen pro debugovaci ucely). Spadne mi to na:
    File Cannot be opened file on server

    Pritom promenna home (cesta do adresare serveru, kam se prijaty soubor ulozi) se vypise spravne.
    
    void handle_msg(char *buf) {
        
        char *p_str;
        char file[1024];
        char home[1024];
        char path[1024];
        int j;
        int flag;
        int hm_len;
        int par_len;
        int is_dir;
        
        strcpy(home, buf);
            j = 0;
            p_str = strtok(home, ":");
    
        while (p_str != NULL) {
            
                if (j == 0)
                    flag = atoi(p_str);
                else if (j == 1)
                    is_dir = atoi(p_str);
                else if (j == 2)
                    hm_len = atoi(p_str);
                else if (j == 3)
                    par_len = atoi(p_str);
                else if (j == 4)
                    strcpy(path, p_str);
                else
                    strcpy(file, p_str);
                p_str = strtok(NULL, ":");
                j++;
        }
            
        printf("flag: %d\n", flag);
        printf("isdir: %d\n", is_dir);
        printf("hmlen: %d\n", hm_len);
        printf("parlen: %d\n", par_len);
        printf("path: %s\n", path);
            
        memset(home, '\0', sizeof (home));
        strcpy(home,mydir); // mydir je nazev korenoveho adresare serveru
        strcat(home, path + hm_len); //k mydir se prida prislusna cesta - adresarova struktura musi byt stejna u serveru i klienta
            
        printf("home: %s\n", home); //vytiskne se korektne
        
        if ((flag == IN_CREATE)) {
            
            if(is_dir)
                mkpath(home, S_IRWXU | S_IRWXG | S_IRWXO);
            else {
                FILE *fr = fopen(home, "wb");      
                if(fr == NULL)
                    printf("File Cannot be opened file on server.\n"); //fr je z nejakeho duvodu NULL
                    
                fwrite (file , sizeof(char), sizeof(file), fr);   
                fclose(fr);    
            }
        }
    
        
    }
    
    void *thread_reader(void **_client) {
        
        client_t *client = *_client;
        char *buf = NULL;
        int len = 0;
        int i;
        char *rest;
    
        while (1) {
            
            buf = (char *) realloc(buf, len + 1024);
            len += recv(client->fd, buf, 1024, 0);
            for (i = 0; i < len; i++) {
                if (buf[i] == '\n')
                    break;
            }
            
            handle_msg(buf);
            rest = (char *) malloc(len - i);         
            broadcast(client->id, buf, i + 1);
            free(buf);
            buf = rest;
        }
    }
    
    
    Pri oteviran isouboru je file descriptor z nejakeho duvodu NULL a ja netusim vubec proc.

    V tomto formuláři můžete formulovat svou stížnost ohledně příspěvku. Nejprve vyberte typ akce, kterou navrhujete provést s diskusí či příspěvkem. Potom do textového pole napište důvody, proč by měli admini provést vaši žádost, problém nemusí být patrný na první pohled. Odkaz na příspěvek bude přidán automaticky.

    Vaše jméno
    Váš email
    Typ požadavku
    Slovní popis
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.