Newsgroup: it.comp.lang.c
Titolo: Wrapper in C

Ciao a tutti,
vi espongo la mia questione. Ho un programmino fatto in fortran sotto
linux(un binario da linea di comando con parametri), vorrei scrivere
un wrapper in C che ne controlli l'esecuzione. Ad esempio il codice C
controlla dei requisiti e se l'utente ne e' in possesso "parte" il
prog fortran(una sorta di licenza). Ho pensato di usare in C le
funzioni system o exec ma come posso fare a prevenire l'esecuzione
diretta del binario fortran??
Avete qualche idea o suggerimento non so proprio dove andare a parare!
grazie in anticipo a tutti
Davide


Se ho capito bene, potresti trasformare il tuo programma Fortran in un 
sottoprogramma e chiamarlo dal programma C  che fa tutti i controlli e 
abilitazioni del caso. Una volta che hai linkato tutto, hai  un unico 
eseguibile.
Giorgio

 wrote:

grazie per la risposta...
ma richiamare funzioni(subroutine) fortran da C e' fattibile senza
troppa "fatica"? avevo sentito che bisognava tenere conto del
compilatore, del sistema operativo, e fare attenzione al passaggio dei
parametri...non vorrei imbattermi in qualcosa di troppo grosso..per
questo avevo pensato alle funzioni exec e system ma non so come fare a
non far eseguire direttamente il binario fortran...

 non far eseguire direttamente il binario fortran...
Dipende dai tipi dati degli argomenti e  dallo standard del Fortran che 
utilizzi  prima che da qualsiasi altra cosa.
Giorgio

 binario fortran...
Se usi exec puoi togliere l'attributo 'x' all'eseguibile
fortran edassegnerlo ad un utente su cui gli altri utenti
non hanno privilegi.
Su un ng dedicato a Unix potranno darti maggiori informazioni.
HTH
C:\>iao Angelo


Non ho capito bene come posso fare questa cosa...e poi cmq io non so
nei pc dove girara' il programma quali utenti ci sono.
ho un'idea: se io nel binario fortran ci aggiungo un controllo del
tipo" se il primo parametro passato da linea di comando non e' xxxx
non partire"
in questo modo eseguendolo direttamente il fortran nn partirebbe...ma
solo dal programma C che glielo passa con la exec..
pensate sia un livello di protezione decente??
avete qualche altra idea??

 avete qualche altra idea??
Si, usare in maniera appropriata i permessi dei file: che
tu ci creda o no, sono stati inventati apposta per risolvere
questi problemi.
Pertanto
man chown
man chmod
Oltre che leggersi un buon testo di base in cui vengano
spiegati i permessi dei file di uno Unix.
HTH
C:\>iao Angelo


wrote:

Questa potrebbe essere una soluzione, ma potrei anche senno' criptare
il binario fortran e, ogni volta che il C viene eseguito, lo decripta
lo esegue e lo ricripta...
ma esistono in C funzioni di questo tipo????che ne pensi??

 ma esistono in C funzioni di questo tipo????che ne pensi??
A partire dal kernel 2.6, dovrebbe esserci il supporto per la
crittografia, ma non conosco i dettagli.
Sicuramente esistono librerie che mettono a disposizione funzioni
crittografiche, ma, scusa la franchezza, dubito che tu saresti in
grado di usarle.
C:\>iao Angelo


wrote:

ma se io do' dei diritti ad un file e questo file lo copio su un altro
pc quel file perde i diritti e diventa del nuovo proprietario.....
quindi nn so se questa cosa puo funzionare...

 quindi nn so se questa cosa puo funzionare...
Copiando il file da una macchina all'altra, si devono aggiustare
i permessi.
La cosa fuinziona fino a quando gli utenti fanno gli utenti
e le macchine hanno un amministratore che impedisce ai primi
di mettere le amni dove desiderano: se chiunque puo' mettere
le mani ovunque, l'unico serio sistema di protezione e' un
santino davanti al monitor ed un pellegrinaggio a Lourdes.
In alternativa puoi riscrivere il programma fortran in modo
che accetti i parametri che desideri.
Questa e' l'ultima risposta. Come ti ho detto piu' volte questo
NON e' il ng adatto a questa discussione.
HTH
C:\>iao Angelo