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

    Ubuntu pro testování nových verzí vydává měsíční snapshoty. Dnes vyšel 1. snapshot Ubuntu 26.04 LTS (Resolute Raccoon).

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

    Zástupci členských států EU se včera shodli na návrhu, který má bojovat proti šíření materiálů na internetu zobrazujících sexuální zneužívání dětí. Nařízení známé pod zkratkou CSAM a přezdívané chat control mělo množství kritiků a dlouho nebyla pro jeho schválení dostatečná podpora. Pro schválení byla potřeba kvalifikovaná většina a dánské předsednictví v Radě EU se snažilo dosáhnout kompromisu. Návrh nakonec po dlouhých týdnech

    … více »
    Ladislav Hagara | Komentářů: 6
    včera 12:22 | Zajímavý software

    Britské herní studio Facepunch stojící za počítačovými hrami Garry's Mod a Rust uvolnilo svůj herní engine s&box (Wikipedie) jako open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT. Herní engine s&box je postavený nad proprietárním herním enginem Source 2 od společnosti Valve.

    Ladislav Hagara | Komentářů: 1
    včera 04:55 | Komunita

    Vývoj programovacího jazyka Zig byl přesunut z GitHubu na Codeberg. Sponzoring na Every.

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

    Stejně jako GNOME i KDE Plasma končí s X11. KDE Plasma 6.8 poběží už pouze nad Waylandem. Aplikace pro X11 budou využívat XWayland.

    Ladislav Hagara | Komentářů: 1
    26.11. 14:55 | IT novinky

    Poslanci Evropského parlamentu dnes vyzvali k výraznému zvýšení ochrany nezletilých na internetu, včetně zákazu vstupu na sociální sítě pro osoby mladší 16 let. Legislativně nezávazná zpráva, kterou dnes odsouhlasil Evropský parlament poměrem 493 hlasů pro ku 92 proti, kromě zavedení věkové hranice 16 let pro využívání sociálních sítí, platforem pro sdílení videí či společníků s umělou inteligencí (AI) vyzývá také k zákazu … více »

    Ladislav Hagara | Komentářů: 44
    26.11. 14:11 | Humor

    Doom v KiCadu nebo na osciloskopu? Žádný problém: KiDoom: Running DOOM on PCB Traces a ScopeDoom: DOOM on an Oscilloscope via Sound Card.

    Ladislav Hagara | Komentářů: 3
    26.11. 12:44 | Nová verze

    Po AlmaLinuxu byl v nové stabilní verzi 10.1 vydán také Rocky Linux. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    26.11. 04:00 | Zajímavý software

    Open source reimplementace počítačových her Tomb Raider I a Tomb Raider II spolu s dalšími vylepšeními a opravami chyb TRX byla vydána ve verzi 1.0. Jedná se o sloučení projektů / enginů TR1X a TR2X do jednoho TRX. Videoukázka na YouTube.

    Ladislav Hagara | Komentářů: 1
    25.11. 17:00 | IT novinky

    Společnost Seznam.cz spouští konverzační nástroj založený na umělé inteligenci Seznam Asistent. Asistent využívá vlastní jazykový model SeLLMa a dočasně i komerční modely od OpenAI provozované v evropských datacentrech prostřednictvím Microsoft Azure. Dlouhodobým cílem Seznamu je provozovat Asistenta výhradně na interních jazykových modelech a ve vlastních datových centrech.

    Ladislav Hagara | Komentářů: 8
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (47%)
     (19%)
     (18%)
     (22%)
     (15%)
     (23%)
     (16%)
     (18%)
    Celkem 410 hlasů
     Komentářů: 17, poslední 19.11. 21:57
    Rozcestník

    Dotaz: C++ a source

    8.6.2011 10:38 ubka7617
    C++ a source
    Přečteno: 355×

    Ahojte skusal som pustat skript cez prikaz source.

    V skripte je iba TEST=1500.

    Po skonceni mi echo $TEST vypise hodnotu premennej test.

    Skusal som ale nacitat tuto premennu do c++ programu a tam mi vyhodi ze je prazdna.

    c program:

    char * TEST;

    system(" /bin/bash -c \"source /home/test.sh\"");

    TEST = getenv("TEST");
    if (TEST == NULL) {
    cout << "Premenna TEST nema ziadnu hodnotu" << endl;
    }

    else{
    cout << "Hodnota premennej je : " << TEST << endl;
    }

     

    Kde robim chybu ked mi nenacita danu premmennu aj ked ju v bashi pozna  ?

    Dakujem

    Odpovědi

    8.6.2011 10:54 Kit
    Rozbalit Rozbalit vše Re: C++ a source
    Proměnná TEST platí pouze pro proces /bin/bash, zpět do rodiče (tvého programu) se její obsah nepřenáší, s ukončením shellu její hodnota zaniká.
    8.6.2011 10:57 ubka7617
    Rozbalit Rozbalit vše Re: C++ a source
    a je mozne tu premennu nacitat bez toho aby tam bolo export test=1500 do c programu ?
    8.6.2011 11:07 blondak | skóre: 36 | blog: Blondak | Čáslav
    Rozbalit Rozbalit vše Re: C++ a source
    A proč ji nepředat jako parametr?
    Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
    8.6.2011 11:54 ubka7617
    Rozbalit Rozbalit vše Re: C++ a source
    lebo v tom skripte sa budu generovat hodnoty parametrov, bude ich viac
    8.6.2011 12:40 kuka
    Rozbalit Rozbalit vše Re: C++ a source
    Ze si program v C spousti bash, ktery spusti skript a tim preda zpet programu nejake parametry formou env promennych, by bylo dost ujete, i kdyby to technicky fungovalo. Mozna kdyz nastinis, co vlastne resis za problem, tak ti nekdo navrhne "obvykle" reseni.
    8.6.2011 13:24 blondak | skóre: 36 | blog: Blondak | Čáslav
    Rozbalit Rozbalit vše Re: C++ a source
    a co použít popen a výsledek vytisknout a výstup pak rozparsovat
    #include <stdio.h>
    #include <stdlib.h>
    
    int main( int argc, char *argv[] )
    {
    
      FILE *fp;
      int status;
      char buff[1035];
    
      fp = popen("/bin/bash -c 'TEST=1500;echo $TEST'", "r");
      if (fp == NULL) {
        printf("Failed to run command\n" );
        exit;
      }
    
      while (fgets(buff, sizeof(buff)-1, fp) != NULL) {
        printf("%s", buff);
      }
    
      pclose(fp);
    
      return 0;
    }
    
    
    nejsem zrovna céčkař, ale mohlo by to jako nakopnutí stačit
    Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
    8.6.2011 12:09 m
    Rozbalit Rozbalit vše Re: C++ a source
    Ahoj, tak to zkus takhle.

    system(" /bin/bash -c \". /home/test.sh\"");

    Sam jsem zvedavej jestli to pomuze.
    8.6.2011 12:36 kuka
    Rozbalit Rozbalit vše Re: C++ a source
    ne nepomuze, jak uz bylo vysvetleno vyse, podproces nemuze nastavit environment svemu rodici
    8.6.2011 14:10 ubka7617
    Rozbalit Rozbalit vše Re: C++ a source

    je mozne aby sa z toho bash scriptu dala vyvolat aj funkcia, ktora je definovana v c++ ?

    napr. na vypis chabovej hlasky a ukoncenie programu, a v pripade ze na konci bude return 0; v tom skripte tak cely krrk bude povazovani za spravny a bude program pokracovat dalej  ?

    8.6.2011 14:51 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: C++ a source
    Obávám se, že bude potřeba, abyste si nejdřív něco nastudoval o tom, co se vlastně děje (a) při spuštění shellového skriptu, (b) při kompilaci a linkování programu napsaného v C a spuštění výsledného nativního spustitelného souboru. Pak teprve pochopíte, proč jsou otázky, které pokládáte, úplně absurdní.
    8.6.2011 15:15 Kit
    Rozbalit Rozbalit vše Re: C++ a source
    Je poměrně obvyklé napsat hlavní program jako skript, ze kterého volám dílčí programy napsané v nějakém kompilovaném jazyce, třeba v C++. Takovému procesu se předává konfigurace poměrně snadno, např. přes kolonu nebo parametr. Obráceně to jde sice také, ale moc rozumné to není.
    8.6.2011 15:54 ubka7617
    Rozbalit Rozbalit vše Re: C++ a source

    co sa tyka mojich otazok - len sa ucim c++

    mam podobny program ktory vie take veci je robeni v c++ ale zial nie su k nemu zdrojaky

    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.