Newsgroup: it.comp.lang.c++
Titolo: Aiuto creazione programma residente in meoria

Vorrei sapere come fare, in C++, un programma che possa rimanere residente
in memoria.
Grazie!!



nel lng std c++ non esiste nulla x fare una cosa del genere...
specifica il sistema operativo... e posta la domanda su
it.comp.programmare .... dato che é il + adatto
Antonio 

 in memoria.
Nessun cenno al sistema operativo?  Ovviamente, quindi, si tratta di
Unix.  Per un "programma residente in memoria" (perche' mai non usera'
il gergo Unix?  Un demone!), devi fare un fork e terminare il genitore
immediatamente dopo; chiamare setsid() per diventare session leader di
una nuova sessione e group leader di un nuovo process group, e
chiudere il controlling terminal; azzerare la filemode creation mask;
chiudere tutti i file descriptors aperti; ed infine connettere stdin,
stdout e stderr a /dev/null.
Semplice, no?
Io consiglio anche di aprire immediatamente una connessione a
/var/log/messages attraverso openlog (se sei su uno Unix BSD-like; su
un System-V ovviamente e' un po' diverso) per tracciare eventuali
errori dopo che ti sei sconnesso da tutti i files descriptors aperti.
Buon Natale!
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

Unix.
Sei terribile :-)
-- 
Marco Barisione (ICQ 84277092)

 > in memoria.
E se fosse un TSR DOS?
N'Drillo

 Io consiglio anche di aprire immediatamente una connessione a
Io invece consiglierei di usare
int daemon (int nochdir, int noclose);
se si e' sotto unix
altrimenti se sei sotto windowze dovresti fare un servizio (non a Bill
Gates).
Ciao
Gaetano.
PS. Se devi farlo per windows scrivimi in privato che ti mando il codice
di una classe da cui devi derivare la tua per creare il servizio.
-- 
Posted from 
nts-03.mm.eutelsat.org
 [194.214.173.15] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG


Da quanto tempo non ne sentivo parlare ... lacrimuccia....
Ciao
Gaetano
-----------------------------------------------
#exclude <windows>
printf("\t\t\b\b\b\b\b\b");.
printf("\t\t\b\b\b\b\b\b");


 il gergo Unix?  Un demone!), 
beh, non e' detto che debba essere per forza un demone. Qualsiasi 
programma, per essere eseguito, deve essere caricato in memoria. 
Qualsiasi programma, quindi, e' "residente in memoria" ;-)))
ciao Anto
-- 
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.6, higher than 98% of all previous test takers.
C Language: 3.32, higher than 79% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it


Ooohhh! Il passato che ritorna

 Ooohhh! Il passato che ritorna
^_^
Roba troppo vecchia eh?
N'Drillo

 ha scritto nel messaggio
news:0vig2ug6u3mr1dmel...@4ax.com...


 Cosa è un servizio?
Prima parli di programma "residente" e poi
dici purtroppo sono sotto Windows??
Un servizio e' di fatto un programma che
gira "sempre" anche se nessun utente e'
loggato.
Non so tu che tool di sviluppo usi, ma se
tu usassi per caso VC++ ti posso mandare una classe
da cui e' suff ereditare per creare un servizio.
Ciao
Gaetano
--
#exclude <windows>
printf("\t\t\b\b\b\b\b\b");.
printf("\t\t\b\b\b\b\b\b");
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 
[Discussioni demoniache {il giorno di Natale??} omesse]
Ai miei tempi bastava fare:
# chmod 1755 <nome del file>
Ciao,
Nicola
P.S. :-)