Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    chiamare con execl un funzione in altro file

    Ciao, a tutti, ho provato a cercare una discussione simile e mi sembra di non averla vista.

    Spiego il mio problema dovrei chiamare con una execl una funzione che si trova in un altro file.

    Se tutti e 2 i file hanno un main funziona nessun problema ma ora dovrei creare un makefile e in compilazione mi da errore se trova il main in entrambi i file.

    codice:

    file1.c

    codice:
    main() {
      sono_il_padre = fork()
      if (sono_il_padre) {
        wait(0);
     } else {
    .....
    
      execl("file2", "stampa", charpid,0); 
    
    ....
      exit(0);
    }
    file2

    codice:
    #include<stdio.h>
    
    int stampa(int argc, char** argv) {
      printf("\nprova\n");						
      fflush(stdout);
      return 0;
    }
    in sostanza non arriva alla funziona stampa del file2 e non so come risolvere la cosa....

    Grazie

    P.

  2. #2
    le exec ... in tutte le sue incarnazioni servono per dare il controllo ad un altro programma eseguibile non ad eseguire una funzione.
    Se vuoi seguire questa strada devi fare due compilazioni e creare due eseguibili, dove nel secondo devi mettere la funzione che vuoi richiamare che deve però essere nel main.
    In alternativa puoi creare una libreria dinamica, compili con le opzioni richieste e generi un file normalmente con estensione .so. Dal tue eseguibile richiami la funzione di questa libreria dinamica esattamente come se fosse nel tuo eseguibile.
    ciao
    sergio

  3. #3
    Grazie mille per l' aiuto!! E per la risposta tempestiva!

    P.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.