Uživatelské nástroje

Nástroje pro tento web


exec

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
exec [2015/12/21 17:38] – [exec rodina] djbuldogexec [2025/08/28 10:09] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 17: Řádek 17:
   * funkce s ''p'' hledají program ve složkách definovaných systémovou proměnnou PATH   * funkce s ''p'' hledají program ve složkách definovaných systémovou proměnnou PATH
   * funkce s ''v'' argumenty předány v poli (poslední NULL)   * funkce s ''v'' argumenty předány v poli (poslední NULL)
-  * funkce s ''l'' argumenty předány přes argumenty funkce (pohodlnější)+  * funkce s ''l'' argumenty předány přes argumenty funkce (pohodlnější, poslední musí být stále NULL) 
 + 
 +===== Wrapper ===== 
 + 
 +  * hodí se pro zjištění, kdo jak volá nějakou binárku 
 +  * parametry i stdin zapisuje do syslogu 
 + 
 +<code c++> 
 +#include <syslog.h> 
 +#include <stdio.h> 
 +#include <iostream> 
 +#include <sstream> 
 + 
 +using namespace std; 
 + 
 +main( int argc, char ** argv, char ** envp ) 
 +
 +        stringstream cmdss; 
 +        cmdss << "/usr/bin/logger.back "; 
 + 
 +        int i; 
 +        for (i=1; i<argc; ++i) { 
 +          cmdss << "'"  << argv[i] << "' "; 
 +        } 
 + 
 +        const string &cmdstr = cmdss.str(); 
 +        const char* cstr = cmdstr.c_str(); 
 + 
 +        openlog ("bariwrap", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_DAEMON); 
 +        syslog (LOG_INFO, "cmd %s", cstr); 
 +        closelog (); 
 + 
 +        FILE *fp = NULL; 
 +        fp = popen(cstr, "w"); 
 +        if (!fp) { 
 +                cerr << "Cannot execute" << endl; 
 +        } 
 + 
 +        for (string line; getline(cin,line);) { 
 +                syslog (LOG_INFO, "line %s", line.c_str()); 
 +                fwrite(line.c_str(), 1, line.length(), fp); 
 +        } 
 + 
 +        pclose(fp); 
 + 
 +
 +</code>
exec.1450715887.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki