MEGASITE FORUM [www.megasiteforum.tk] Trucchi, curiosità e consigli sul pc, e non solo! Download, pc help assistenza informatica aiuto computer, programmazione, calcio, basket, formula 1 e motori, divertimento, musica, tv & cinema, spazio per ragazze, notizie hi-tech e multimedia, games

Funzioni C su Linux

  • Messaggi
  • OFFLINE
    ReMichael
    Post: 3.322
    Sesso: Maschile
    Admin
    GreatMegaSiter
    00 07/06/2004 23:29
    Funzione per pulire la shell:

    void pulisci_schermo() {
    printf("\033c");
    printf("\033[2J");
    }


  • OFFLINE
    ReMichael
    Post: 3.323
    Sesso: Maschile
    Admin
    GreatMegaSiter
    00 07/06/2004 23:34
    Password shadow sulla shell
    # include <stdio.h>
    # include <termios.h>

    # define MAX_PASS 50

    struct termios newTerminalSettings;
    struct termios oldTerminalSettings;

    // nasconde l'echo sulla shell
    void shadow() {
    tcgetattr( fileno( stdin ) , &oldTerminalSettings );
    newTerminalSettings = oldTerminalSettings;
    newTerminalSettings.c_lflag &= ~ECHO;
    tcsetattr( fileno( stdin ) , 0 , &newTerminalSettings );
    }

    // riabilita l'echo sulla shell
    void unshadow() {
    tcsetattr( fileno( stdin ) , 0 , &oldTerminalSettings );
    }

    int main() {
    char password[MAX_PASS];
    printf("Password: ");
    shadow();
    fgets(password,MAX_PASS,stdin);
    printf("\n");
    unshadow();
    return(0);
    }
    Modificato da ReMichael 07/06/2004 23.35
  • OFFLINE
    ReMichael
    Post: 3.869
    Sesso: Maschile
    Admin
    GreatMegaSiter
    00 03/12/2004 18:10
    Genera un numero casuale
    // imposta il seme per la casualità
    srand((unsigned)time(NULL));

    // genera un numero casuale tra 1 e n (compresi)
    int caso = (rand() % n) + 1;
  • OFFLINE
    ReMichael
    Post: 3.870
    Sesso: Maschile
    Admin
    GreatMegaSiter
    00 03/12/2004 18:18
    Connessione ad un db mysql
    prima di tutto bisogna avere l'header mysql.h

    # include
    // ...

    // parametri di connessione al db
    const char *DB_NAME="...";
    const char *DB_HOST="..."; // di solito "localhost"
    const char *DB_USER="...";
    const char *DB_PASS="...";

    // variabile globale
    MYSQL mysql;

    int connect_db() {

    if (! mysql_init(&mysql)) return (-1);
    if (! mysql_real_connect(&mysql,DB_HOST,DB_USER,DB_PASS,"",0,NULL,0)) return (-1);
    if (mysql_select_db(&mysql,DB_NAME)) return (-1);
    return(0);

    }

    N.B:
    - non è detto che la libreria da includere sia in mysql/mysql.h (dipende dalla distro)
    - bisogna compilare aggiungendo l'opzione -lmysqlclient
  • OFFLINE
    ReMichael
    Post: 3.871
    Sesso: Maschile
    Admin
    GreatMegaSiter
    00 03/12/2004 18:24
    Esempio di query

    // si connette al db
    if (connect_db() == -1) {
    printf("\nerrore\n");
    return;
    }

    MYSQL_ROW row;
    MYSQL_RES *result;
    char *query = "select nome, cognome from utente";
    int i, nrows;

    if (mysql_query(&mysql)) {
    printf("\nerrore\n");
    return;
    }

    result = mysql_store_result(&mysql);
    nrows = mysql_num_rows(result);

    for (i = 0; i < nrows; i++) {
    // si posiziona sul primo campo
    mysql_field_seek(result,0);
    row = mysql_fetch_row(result);

    printf("\nUtente: %s %s",row[0],row[1]);
    }

    // libera la memoria allocata per la query
    mysql_free_result(result);

    // chiude la connessione con il db
    mysql_close(&mysql);
  • OFFLINE
    S6uRoN
    Post: 2.874
    Sesso: Maschile
    Admin
    UltraMegaSiter
    00 04/12/2004 11:52
    Ohhh... figa! [SM=x165494]
  • OFFLINE
    megasite3000
    Post: 2.118
    Sesso: Maschile
    Admin
    MegaSiter
    00 07/12/2004 00:13
    un mito! [SM=x165460] [SM=x165462]
    anche se nel primo caso x pulire la shell io avrei sfruttato il comando clear (lanciandolo con la chiamata execl)!
  • OFFLINE
    ReMichael
    Post: 3.896
    Sesso: Maschile
    Admin
    GreatMegaSiter
    00 07/12/2004 00:37
    Re:

    Scritto da: megasite3000 07/12/2004 0.13
    un mito! [SM=x165460] [SM=x165462]
    anche se nel primo caso x pulire la shell io avrei sfruttato il comando clear (lanciandolo con la chiamata execl)!



    con la mia funzione ho pensato che essendo standard C, dovrebbe pulire tutte le shell, quindi anche quella di win (anche se non ho provato)... con la chiamata di sistema win è fottuto... (magari mi sbaglio... non so)

    cmq non conoscevo execl !!!!! la tua potenza mi ha sorpreso! [SM=x165462]
  • OFFLINE
    megasite3000
    Post: 2.123
    Sesso: Maschile
    Admin
    MegaSiter
    00 11/12/2004 20:01
    Re: Re:

    Scritto da: ReMichael 07/12/2004 0.37
    con la chiamata di sistema win è fottuto...



    esattamente [SM=x165502]
  • OFFLINE
    ReMichael
    Post: 3.933
    Sesso: Maschile
    Admin
    GreatMegaSiter
    00 11/12/2004 22:20
    Re: Re: Re:

    Scritto da: megasite3000 11/12/2004 20.01


    esattamente [SM=x165502]



    [SM=x165456]