mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: x i più esperti: qual è il migliore libro per imparare il C?

Si accettano consigli.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Si accettano consigli.
questa è una delle domande + gettonate e io ti invito
a fare una ricerca nei thread che contengono la sigla
K&R
:)
-- 
Lawrence "Rhymes" Oluyede (
rhy...@myself.com
)
"Per cambiare, per diventare un'altra
cosa dobbiamo prima sapere cosa siamo"
(Bruce Lee)

 
Ciao,
non esiste un solo libro migliore di tutti,
ti consiglierei di comprare i primi 2 e poi in seguito gli altri 2.
K&R
Deitel&Deitel
Bellini, Guidi - "Guida al Linguaggio C" - ed McGrwaHill
"Programmare in C" Aitken, Jones della Apogeo, 
ciao
Davide

"Programmare in C" Aitken, Jones della Apogeo, 
Uhmm, il Bellini-Guidi sarebbe piu' facile e meno completo del K&R,
non il contrario.
Il Bellini ti va' bene per iniziare perche' ti spiega le cose in modo
piu' leggero, il K&R e' il testo ufficiale che poi ti servira' sempre
come riferimento (affiancato dal Koenig secondo me).
Mox

 Mox
Io ho sia il K&R e il Deitel&Deitel e ti assicuro che il Deitel 
va benissimo per iniziare, ti insegna anche a programmare se non sei capace!!
Per questo motivo avevo detto i primi due libri...
Credo che il K&R insieme al Deitel&Deitel formino una bella
accopiata vincente!
Ciao
Davide

accopiata vincente!
Non lo metto in dubbio, io criticavo solo la scelta di mettere il
Bellini-Guidi come libro avanzato, non il resto :)
Mox

Newsgroup: it.comp.lang.c
Titolo: Libro di programmazione 3d

Ciao,
qualcuno conosce un buon libro in italiano o in inglese che tratti la
programmazione di un motore grafico 3d sotto Windows?
Grazie!!!

 ha scritto nel messaggio
news:39f03...@news.dada.it...

Prova Programmazione Grafica 3D di Andrea Fasano, ordinandolo on line al
sito 
www.infomedia.it
Costa £. 25.000, ed è molto buono. Fornisce anche un CD con i sorgenti degli
esempi e diverse applicazioni utili, compreso il djgpp.
Però non tratta la costruzione specifica per Windows. Usa il dos.
Poi cerca qualcosa nel sito 
www.gpi.infomedia.it
Ciao ciao
estr...@libero.it
estr...@tiscalinet.it
http://web.tiscalinet.it/tempo_libero/index.html
http://digilander.iol.it/webstudent/
Newsgroup: it.comp.lang.c
Titolo: ancora socket-internet...

Alla base di tutto c'e` una scarsa comprensione dei meccanismi "interni"
d gestione della comunicazione client-server usando socket unix in
dominio internet.
Scenario: un client scrive regolarmente a un server. In seguito a
determinati vincoli che non espongo ha la necessita` di connettersi a un
altro server (server 2) di cui riceve i dati di connessione dal vecchio
server (server 1) chiudendo col primo. Per non ritrovarmi su un binario
morto io provo a fargli fare la nuova connessione, se va ok chiudo la
vecchia e scrivo sulla nuova. Noto pero` degli effetti indesiderati come
ad esempio il fatto che il vecchio server continua a ricevere quello che
io voglio scrivere SOLO al nuovo finche` non opera una close della
socket con cui comunica al client (quella ottenuta dall'accept per
intenderci).
Entrambi i server sono concorrenti singolo processo e sotto select
Pseudo-codice del client
main
  int sock_scrittura, temporaneo;
  struct sockaddr_in s_scrittura;
  int lungh_s_scrittura;
...
if "condizione X"
  temporaneo=sock_scrittura;
  sock_scrittura=socket(AF_INET, SOCK_STREAM, 0);
  "riempi i campi di s_scrittura con i dati di server2 arrivati da
server1"(*)
  if connect(sock_scrittura, &s_scrittura, lungh_s_scrittura)<0
    close(sock_scrittura);
    sock_scrittura=temporaneo;
    write(sock_scrittura, "scrivi a server1 fallimento connect server2")
  else
    close(temporaneo);
    write(sock_scrittura, "scrivi a server2")
Domande:
1) che legame c'e` tra il descrittore di socket e la struttura di tipo
sockaddr_in che gli compete?
Dev'esserci una abbinamento 1 a 1 e quindi io devo sdoppiare tutto,
anche la struttura sockaddr_in e non solo il socket descriptor?
Ovvero l'istruzione (*) compromette "l'integrita`" del canale di
comunicazione?
Cio` non mi torna molto perche` la write richiede solo il descrittore di
socket come parametro della socket e io mi aspetto che ad esso ci siano
legati indissolubilmente i dati del canale di comunicazione da usare
(porta e address del server)
2) che succede all'estremita` server di un canale di comunicazione
quando lato client viene chiuso l'altro estremo con una close? Intendo a
livello di maschera di select, puo` succedere che vengano rilevati
segnali "spuri"?
Saluti e ringraziamenti anticipati
-- 
Giuseppe R.
E-mail: mailto:
giuseppe...@SPAMnetit.alcatel.it
--
Posted from 
ns.alcanet.it
 [194.243.74.35] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

dominio internet.
it.comp.os.linux.development
Newsgroup: it.comp.lang.c
Titolo: alberi trie e libro

Ciao,
vorrei sapere se in giro per la rete esiste qualche risorsa che tratti
degli alberi trie, eventualmente con qualche esempio di codice c.
Mi sapreste consigliare un buon libro di algoritmi e strutture dati in c,
di carattere generico ho già "Introduzione agli algoritmi" by Cormen,
troppo teorico per i miei gusti.
Grazie
/* per i reply
    marco
                __at__
                                marco75
                                                 net */


io sto usando "Algoritmi in C" di R. Sedgewick - Edizioni Addison-Wesley
Masson ....
non so cosa intendi per "troppo teorico", ma mi sembra normale che un
libro del genere
affronti i problemi generalizzandoli per permetterti di capire come
funziona l'algoritmo
e per poterlo poi applicare a tuo piacimento ....
tieni conto che io sono un autodidatta, diplomato al liceo classico e
(quasi) al
conservatorio (quindi con la matematica non c'ho avuto praticamente
niente a che fare )
e ti dico che, anche se con un notevole sforzo del mio cervellino, piano
piano sto
capendo non tutto, ma quello che mi serve ...
quindi, secondo me, il libro e' fatto bene ...
ciao .
-- 
Antonio barbone ......
Outside of a dog, a book is man's best friend.
Inside of a dog, it's too dark to read.
		-- Groucho Marx

 degli alberi trie, eventualmente con qualche esempio di codice c.
Ottimi e semplicissimi esempi C:
http://www.cs.tcd.ie/Martin.Emms/NLP/C/Trie/
Semplicissima e non-teorica spiegazione riassuntiva:
http://www.webreference.com/js/column57/2.html
Alex

niente a che fare )
Urgh ! ma uno spartito e' tutta matematica !!! :)
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
---------------------------------------------
#exclude <windows.h>

> quindi, secondo me, il libro e' fatto bene ...
non ho detto che il libro è fatto male e solo che dovendo scrivere un
programma che
utilizza gli alberi trie per venerdi prossimo volevo sapere se c'era in giro
qualcosa
che mi permettesse di accorciare i tempi, tutto qui mi sono espresso in modo
troppo frettoloso nel primo post, sorry
ciao :-)

 wrote in message
8k9ron$145$1...@nslave2.tin.it...



vabbe', e; vero .... ma una cosa e' se lo devi analizzare (a livello di
armonia e
di composizione) e un'altra e' suonarlo ....
ed io sinceramente dopo aver fatto l'esame di armonia .... ho rimosso
quasi tutto ...
voglio essere un semplice esecutore !!!
ciao ciao

Newsgroup: it.comp.lang.c
Titolo: non so stampare

ciao a tutti ho notato che qualcun altro ha un problema simile al mio cioč
quello di poter stampare attraverso il c.Il mio compilatore dev' esser il
borland 3.1 (penso) e facendo la prova aprendo il file PRN mi dice che non
trova il dispositivo o qualcosa del genere. Ho provato anche con
fprintf(stdprn,"%s",string)  ma mi da lo stesso errore. Non c' č nessuno che
riesce a farmi stampare?
grazie a tutti gia da ora Thomas

riesce a farmi stampare?
Il DOS/Windows possiede "type" come comando che č possibile
reindirizzare e quindi puoi scrivere :
#include <stdio.h>
#include <stdlib.h>
int main()
{
    FILE *fp ;
    fp = fopen( "miofile.txt", "wt" ) ;
    fputs( "Questa e\' una prova\n", fp ) ;
    fputs( "per testare la stampa\n", fp ) ;
    fputs( "di un file di testo.\n", fp ) ;
    fclose( fp ) ;
    system( "type miofile.txt > prn" ) ;
    return 0 ;
}
--
Andrea Laforgia        (
andrea_...@bigfoot.com
)

Newsgroup: it.comp.lang.c
Titolo: Collegare notebook al desktop per navigare

Ho il problema che il mio Toshiba 1900-303 ha un winmodem amr che non
sono riuscito a far funzionare con linux. Per poter navigare ho
pensato di collegarlo al desktop che grazie al modem esterno sotto
linux č ok (il portatile non ha la seriale e non posso collegarci il
modem), soltanto che non so da dove iniziare. Qualcuno ha una vaga
idea di come realizzare il tutto (schede e cavo dovrebbero essere ok)
??
iesse,
un tempo @Cbgb.
--ivansp[at]tiscalinet.it--

 ha
scritto:
Chiedo scusa, ho sbagliato gruppo ..

Newsgroup: it.comp.lang.c
Titolo: Package

Come si realizza un package (Unit) in C?
Grazie

 Come si realizza un package (Unit) in C?
In nessuno modo, visto che non esistono. Se poi ti riferisci ad una
libreria di funzioni, esistono vari modi (che fondamentalmente dipendono
dal compilatore, oltre che dal S.O., utilizzato).
Se fosse possibile avere qualche dettaglio in piu'...
C:\>iao Angelo
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

> Se poi ti riferisci ad una libreria di funzioni
Esatto, giusto quello.
io utilizzo il Turbo C della Borland
Come posso fare?
Grazie

Fausto ha scritto:


Se passi a VC++ te lo dico :-)
C:\>iao Angelo
P.S. Purtroppo io non uso il turbo C.


> Se passi a VC++ te lo dico :-)
Ok, parla.

 Ok, parla.
La via facile usando il wizard
Per una DLL
File->nuovo->Projects->Win32 Dynamic-Link library
Dare il nome alla libreria nella casella "Project name" (es. testDllLib)
File->nuovo->Files->C++ Source file
Dare il nome al file nella casella "Fle Name" (es. testDllLib.c)
Il file viene aggiunto automaticamente al progetto.
Cominciare a scrivere il codice delle funzioni della libreria, i nomi che
devono essere esportati (ovvero quelli che possono essere richiamati da
programmi esterni) devono avere __declspec(dllexport) davanti es.
__declspec(dllexport) int expFnc1(int pInt)
{
 ...
   return res;
}
Per una libreia statica i passi sono sostanzialmente gli stessi.
C'e' qualche altra cosa da aggiungere, ulteriori dettagli in privato
o su it.comp.programmare.win32 (qui si e' leggermente OT)
HTH
C:\>iao Angelo
Newsgroup: it.comp.lang.c
Titolo: Tasto premuto

Ciao!
Una domanda facile facile, ma a cui non so dare risposta.
In un programma C, come faccio a vedere se durante l'elaborazione e' stato
premuto un tasto?
Io vorrei eseguire un loop infinito (computazionalmente abbastanza
oneroso), dal quale uscire se l'utente preme un tasto qualsiasi sulla
tastiera.
Come faccio?
I vari getch() o simili arrestano l'esecuzione in attesa del tasto, ma non
e' questo quello che voglio.
Grazie mille!
PS: Per favore, se mi rispondete anche in privato, mi sarebbe molto utile.
Michele
 
beri...@targheitaliane.it
  +---------------------------------------------------------------+
  |   BASIC programmers never die, they GOSUB and don't RETURN.   |
  +---------------------------------------------------------------+
 
http://www.targheitaliane.it

 Come faccio?
una select sullo stdin.
bye


Ovvero? Che e'? :)
CiauZ!

 e' questo quello che voglio.
Utilizza la funzione _kbhit() che ti ritorna un valore diverso da zero se č
stato premuto un tasto; naturalmente il tasto potrŕ essere letto come al
solito con getch() o simili.
Basta che inserisci una chiamata alla funzione all'interno del ciclo e
comportarti di conseguenza in caso di pressione di un tasto.
ciao
Andrea Imperiali

 come al solito con getch() o simili.
[punkreas@localhost punkreas]$ man kbhit
No manual entry for kbhit
[punkreas@localhost punkreas]$ man _kbhit
No manual entry for _kbhit
mi sa che la tua bella funzioncina non e' standard...
;)

;)
Dev'essere nella conio.h, quindi non standard, anche se portabile (su
SF.net c'e' un porting). Forse e' implementata anche nelle curser, ma
comunque non e' standard.
Mox	

 comunque non e' standard.
nelle curses c'e' getch(), che insieme ad ungetch() simula la kbhit()

Newsgroup: it.comp.lang.c
Titolo: prog win con il C

Salve a tutti conoscendo il C ( facciio prog dos) ho visto che con il VC++ 6
non è mica semplice fare programmi per win32, potreste indicarmi la via
magari con qualche piccolo esempio, mica devo imparare il c++ per forza.
Grazie anticipatamente per le risposte.
Saluti a tutti

magari con qualche piccolo esempio, mica devo imparare il c++ per forza.
Proprio perchè è difficile programmare per win non è possibile fare un
esempio (oltre al fatto che siamo OT, solo la visualizzazione di una
semplice finestra vuota richiederebbe un centinaio di righe di codice). Se
vuoi cominciare a sviluppare applicazioni per win devi comprarti un buon
libro (ti consiglio l'ultima edizione del Petzold) e metterti a sgobbare per
capirci qualcosa. Per te che arrivi dal DOS sarà dura ma se persisti ce la
farai.
Riguardo al C++ non è necessario impararlo, anzi il win32 supporta
nativamente il C non il C++.
Ciao, Giuseppe





ICQ #34602650
Newsgroup: it.comp.lang.c
Titolo: cancellare parti di file

salve a tutti,
come faccio ad implementare un algoritmo che taglia una parte ti un tyesto
tra due pqrole specificate e le copia in un'altro file, rimpostando il
vecchio file senza la parte copiata?
c'ho provato ma a volte funziona ed ha volte no!!!, e nel file originario mi
compare una misteriosa я, mha!!!!
aiutoooooo
bye bye

 vecchio file senza la parte copiata?
Devi riscrivere daccapo il vecchio file. Non esiste un modo standard per 
eliminare parte del suo contenuto.
Newsgroup: it.comp.lang.c
Titolo: Mi spiegate questo warning?

Ciao a tutti.
Sto scrivendo una versione semplificata del programma more, ed ho 
dichiarato FILE *ifp in un file di intestazione incluso in tutti e due i 
file che costituiscono il programma. 
I due file si chiamano main.c e io.c. 
Il warning che ottengo è il seguente:
[Linker Warning] Public symbol '_ifp' defined in both module C:
\PROGRAMMI\BORLAND\CBUILDER6\PROJECTS\MORE_SEMPLICE\MAIN.OBJ and C:
\PROGRAMMI\BORLAND\CBUILDER6\PROJECTS\MORE_SEMPLICE\IO.OBJ
Domanda: perché il linker si lamenta? Non è forse ifp una variabile 
globale come tutte le altre? 
Grazie e un saluto cordiale a tutti.
Bizio.

Fabrizio Marini ha scritto:

a completamento di quello che ti hanno gia' detto:
nel file .h e' meglio una dichiarazione "extern" :
extern FILE *ifp;
e poi dichiarare effettivamente la variabile in un solo file .c
la clausola "extern" fa si che il compilatore si limiti a tenere nota 
dell'esistenza della variabile nel file .c che sta compilando senza 
effettivamente generarla

Newsgroup: it.comp.lang.c
Titolo: INSEGNO IL C++ GRATIS!!!

Per informazioni 
tre...@grisnet.it
.

In una piccola applicazione creata con Visual C++ 5, ho inserito una casella
di testo a cui è associata una variabile di tipo int.
In risposta all'evento EN_CHANGE ho scritto "UpdateData(TRUE);".
Quando il programma è in esecuzione non appena premo il tasto di un numero
esce un messaggio che chiede di inserire un intero.
Come mai esce questo messaggio anche se ho digitato un numero intero?
Nella creazione della variabile non ho imposto dei limiti.
Vi sarei grato se potreste darmi un consiglio.
Grazie anticipatamente.
Saluti
Francesco
franco....@spm.it


Newsgroup: it.comp.lang.c
Titolo: Newbie

Sto imparando il c all' universitŕ..
consigli link utili?
Grazie
come compilatore ho installato ildev c++.. che ne dite??

occhio al fatto che se a scuola (come da noi) usano win95+turboC potrebbe
esserci qualche leggera differenza..
per esempio il mio programma all'esame non girava perchè il filesystem di
dos non supporta i nomi con + di 8 caratteri.. e io proprio abbinamenti.txt
lo dovevo chiamare quel *a**o di file??
cmq il dev è buono ma non debugga ;)
ciao

Newsgroup: it.comp.lang.c
Titolo: kill, #include e warning

scusate, che header sono necessari per usare la funzione
       int kill(pid_t pid, int sig);
?
in man 2 kill dice che basta premettere
       #include <sys/types.h>
       #include <signal.h>
all'uso, tuttavia...
$ cat kill.c
#include <sys/types.h>
#include <signal.h>
int main() {
       return kill(0, 0);
}
$ gcc -Wall -std=c99 -pedantic kill.c -o kill
kill.c: In function `main':
kill.c:5: warning: implicit declaration of function `kill'
$
cos'e' che non colgo?
-- 
Under construction

 cos'e' che non colgo?
Che kill non è un funzione prevista dal C99. Se vuoi le features del C99
più tutti gli extra usa -std=gnu99.
Luca
-- 
Una donna sposa un uomo sperando che cambi, e lui non cambiera`. Un
uomo sposa una donna sperando che non cambi, e lei cambiera`.

(immagino che tu usi gcc su Linux)
ZeD ha scritto:

Compili con l'opzione -std=c99 e il prototipo della kill() non viene 
piu' dichiarato in signal.h (cioe' non e' definito __USE_POSIX - vd. sotto).
-- signal.h ------------
.....
#ifdef __USE_POSIX
extern int kill (__pid_t __pid, int __sig) __THROW;
#endif /* Use POSIX.  */
.....
------------------------
Ciao
-- 
Cybertoldo
Per rispondermi via email, sostituisci moc.liamg con 
gmail.com

Newsgroup: it.comp.lang.c
Titolo: scusate

grazie a tutti, sň di essere un ignorante , ma se avessi saputo tutto non
avrei chiesto aiuto.Se chiedo una mano č perchč le cose non le sň, mi
rendo conto di essere risultato assillante ma bastava chiarirsi (come ha
fatto Giovanni Resta che ringrazio) e non incazzarsi (come ha fatto Tommy
che ringrazio ugualmente perchč si č incazzato per colpa mia che non
capivo una cosa banale).
Ragion per cui ringrazio tutti e mi scuso ancora.
a presto,  .... anzi prestissimo(...sono molto ignorante e spero mi
possiate sollevare da questo pavimento di ignoranza :)   
Grazie ancora
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 possiate sollevare da questo pavimento di ignoranza :)   
Per sollevarsi è sufficente anche solo lo spessore di un manuale ...
poi per alzarsi c'è il newsgroup ;)
Ciao Max
+-----------------------------------------------------------+
| Secondo alcuni autorevoli testi di tecnica Aeronautica,   |
| il calabrone non può volare, a causa della forma e del    |
| peso del proprio corpo in rapporto alla superficie alare. |
| Ma il calabrone non lo sa e perciò continua a volare.     |
|					     Igor Sikorsky  |
+-----------------------------------------------------------+

 ha scritto nel messaggio
news:20040429183152....@me.it...

Newsgroup: it.comp.lang.c
Titolo: thread

Ciao. Devo creare un thread in un programma sotto linux che si occupi da
solo di aggiornare dei dati. Non ho la più pallida idea di come si
realizzino i thread in c (preferireri usare glib) perché ho programmato
in multithread solo sotto java.
Qualcuno di voi è disposto a darmi un'infarinatura? Magari anche un link
di documentazione?
-- 
Non c'è più forza nella normalità, c'è solo monotonia.

di documentazione?
Il C standard non prevede l'utilizzo dei thread e per questo non offre
alcuna funzione che ne consenta l'implementazione.
Sotto Windows, per esempio, ci sono molti modi diversi di fare
qualcosa del genere, a seconda dei compilatori.
Dovresti guardare la documentazione specifica del tuo compilatore
sotto Linux.
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
--------------------------------------------------------------
"Partire e' un po' morire e morire e' partire un po' troppo !"
--------------------------------------------------------------




Prova con la fork()...
fork() non centra con la programmazione multithread. Se chiami
fork() viene creato un altro *processo* con una copia dei dati
e dei duplicate degli handle dei file aperti.
Con multithread si intende di solito la programmazione con piu'
thread in esecuzione nello stesso spazio di memoria (variabili
condivise, non duplicate).
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

di documentazione?
La cosa e' off-topic qui pero' ti posso rimandare alla documentazione
di pthread (POSIX thread) che e' una libreria disponibile su linux.
Io ho trovato pthread abbastanza semplice da utilizzare e sono
arrivato a utilizzarla come sistema 'base' (sotto Win32 uso delle
macro che rimappano le chiamate pthread nelle chiamate specifiche
Windows). Se pero' hai qualche problema mandami pure una mail.


 condivise, non duplicate).
appunto, a me serve che condividano le stesse variabili globali.


 Se pero' hai qualche problema mandami pure una mail.
spero di non doverti disturbare.
Ciao


ah sě? e che ng se ne occupa?
it.comp.os.linux.development


8-o
-- 
Non c'č piů forza nella normalitŕ, c'č solo monotonia.

Newsgroup: it.comp.lang.c
Titolo: Corrige: Firewall

Salve a tutti,
vorrei sapere se qualcuno sa come realizzare un firewall o
se puo darmi qualche
indirizzo utile dove reperire informazioni. (ad es. come interrogare il
kernel)
Grazie e ciao.

:

Oki, visto che hai /corretto/ la richiesta, ti meriti una /correzione/
alla risposta:
it.comp.os.linux.development
it.comp.programmare.win32
(per Mac non mi sono mai interessato)
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."

 wrote in
news:4LjR8.55629$
j65.1...@twister1.libero.it
: 

Prova a iniziare da qui:
http://winpcap.polito.it/news.htm
-- 
Valter Minute
vmi...@inwind.it
 (the reply address of this message is invalid)
Newsgroup: it.comp.lang.c
Titolo: Help tail...

Ciao a tutti, evrei un piccolo problema.
Vorrei ricreare il comando tail in ambiente dos. Il problema è che
non ho idea di come fare...
 Ho provato ad utilizzare la select, ma funziona solo con le socket!
forse sbaglio io.
 Avrei bisogno di una funzione che rimanga in ascolto sulla write di un
file...
  Avete qualche consiglio da darmi?
Grazie a tutti.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

   Avete qualche consiglio da darmi?
io utilizzerei un algoritmo di questo tipo:
while(true){
        attendo 1 secondo
        controllo la lunghezza del file
        se è cresciuta stampo la nuova parte del file
}
niente select/poll, il costo di un polling ( ogni secondo non di meno ) è 
trascurabile

Newsgroup: it.comp.lang.c
Titolo: Operatori Bitwese su double

Qualcuno sa' com'è possibile utilizzare gli operatori bitwise su di una 
variabile double?

 variabile double?
Non si possono applicare. Cosi` e` scritto nel K&R.
Saluti,
Marco

:°


 variabile double?
Non direttamente, anche perche' non avrebbe molto senso.
Se vuoi usarle per "leggere" i vari bit di un double,
basta usare un puntatore.
Per esempio:
double d;
unsigned char *c;
int i;
c = (unsigned char *) (&d);
for (i=0; i<sizeof(double); i++)
{
   printf("%d-esimo byte = %u\n",(unsigned int)*c);
   c++;
}
qui sopra ho stampato i byte, ma ovviamente avrei potuto leggere,
o volendo anche modificare, i singoli bit.
ciao,
g.

Hey grazie mille Caro Estintore!
mi sei stato di grande aiuto
tnx
Newsgroup: it.comp.lang.c
Titolo: problema con socket

ciao a tutti,
ho da poco iniziato a programmare socket in c, mi sono imbattuto ina 
problematica che vorrei porvi.
Dopo avre creato un socket e messo in ascolto su una porta, una volta 
aver accettato la connessione tento di ricevere, purtroppo ottengo una 
segmentation fault poco dopo l'avvenuta connessione nel caso in cui 
tento di usare una recv o un ciclo di lettura tipo questo:
while(n>0)
{
   n = read(webs,buff,MAX_BUF);
   if (n>0) write(connfd,buff,n);
}
La cosa non avviene se invio per primimo con una send o write.
Qualcuno ha consigli?

Manuel ha scritto:

Magari se posti il codice potremmo esserti più di aiuto

 Magari se posti il codice potremmo esserti più di aiuto
Ti ringrazio dell'interesse ma credo di aver risolto utilizzando la 
select ;)

Manuel ha scritto:


non immagino neppure lontanamente come l' uso di select() risolva un
"segmentation fault"
Forse non dovresti dare il problema per risolto... Comunque non avendo
visto il codice non posso affermarlo con certezza.
ciao
Roberto.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Newsgroup: it.comp.lang.c
Titolo: Leggere la posta

Salve a tutti...io ho questo problema.
A me serve un programmino che mi faccia una cosa di questo tipo.
Per ogni mail che arriva/viene inviata il mio programmino deve
analizzarla e scrivere in un file di testo, in locale, a chi è
diretta/da chi arriva e il corpo del messaggio.
Il mio programma girerà in locale ma tenete conto che lavorando in una
grande azienda gira antivirus(Trend Micro) e in piu c'è l'help desk
che si collega x vedere che cavolo facciamo.
Domanda c'è un programmino che fa cio????altrimenti qualcuno riesce a
farlo???
grazie mille
P.S. si accettano suggerimenti alternativi

giuliano wrote:

dal momento che hai la mail controllare gli header e' semplice e scrivere su
un file e' anche piu' semplice.
l'unico problema e' configurare il server od un client per far chiamare il
tuo programma quando una mail arriva, ma questo non e' un argomento da
discutere in questo NG.
al limite puoi creare un programma che ad intervalli regolari interroga il
server per le nuove mail, non troppo complicato ma relativamente poco
sicuro (dovrai lasciare le informazioni necessarie al login al tuo
programma).
-- 
sign

 
Ma ci sono chilovalangate di programmi che fanno questo, e allora sono
tutti poco sicuri?

Tetsuya wrote:

beh tenere le password in consegna ad un programma per quanto crittografate
e' sempre meno sicuro che non tenercele.
di fatto dovrebbero stare solo sul server (non in chiaro) e nella testa dei
proprietari degli account (ma anche su quest'ultimo a volte si potrebbe
discutere).
-- 
sign

Da perfetto ignorante in materia chiedo questo....ma nn c'è un modo
per fare un  programma che lui in automatico stia in ascolto sulla
porta 25 (SMTP) e ogni volta che passa qls lui intercetta il tutto????
io nn ho la possibilità di vedere il mail server quindi nn riesco a
fare nulla.....
grazie mille ciao ciao
Newsgroup: it.comp.lang.c
Titolo: leggere la memoria?

Come devo fare per leggere il valore di un indirizzo di memoria sotto Linux?
Ossia, voglio accedere al contenuto dell'indirizzo 0xabcd (per esempio) per
poterci leggere (e magari scrivere...)...
--
     Ciao,
     Claudio
 
email: 
cla...@rnaserver.med.uniroma2.it
 
c.d...@usa.net
 

claudio+
AEA-rnaserver.med.uniroma2.it
 ha scritto nel messaggio
+ADw-6kemsa+ACQ-a8o+ACQ-2+
AEA-mvxgl8.fis.uniRoma2.it
+AD4-...
+AD4-Come devo fare per leggere il valore di un indirizzo di memoria sotto
Linux?
+AD4-Ossia, voglio accedere al contenuto dell'indirizzo 0xabcd (per esempio) per
+AD4-poterci leggere (e magari scrivere...)...
Normalmente con i puntatori. Ricordati pero' che, se l'indirizzo non e'
contenuto nella zona di memoria associata al tuo processo e tu fai un
accesso in scrittura, il programma terminera' con un segmentation fault
Newsgroup: it.comp.lang.c
Titolo: [NEWBBIE] Dubbi su realloc e gestione stringhe

Salve a tutti.
Vi prego di scusarmi se le domande che vi sto per fare sono sciocche, ma
sono almeno 5 anni che non scrivo più una riga di codice in C e mi sono
dimenticato praticamente tutto.
Prima di tutto, sto facendo un primo programmino tanto per riprendere
confidenza con il C.
Dati #n parametri, il programma ne crea un stringa sola e se incontra un
particolare tipo di parametro gli fa un replace di alcuni caratteri
indesiderati.
1 - ma non esiste un replace char nella libreria string.h? Cmq me lo sono
rifatto da solo.
2 - Per fare l'append (purtroppo da quando lavoro con Java mi aspetto
sempre che le cose siano semplici :) ) tra due stringhe non basta fare:
    char * tmp = {"test "};
    tmp = strcat(tmp,argv[idx])
Devo prima riallocare la memoria necessaria a contenere le due stringhe
giusto?
Questo mi porta al terzo punto.
3 - Il seguente codice è corretto?
   char * tmp = {"Pippo "};
   tmp = realloc(tmp,strlen(argv[i));
La memoria viene ridimensionata senza inconvenienti oppure devo occuparmi
di deallocare il vecchio buffer? Vi chiedo questo perchè ho trovato delle
avvertenze nella documentazione di questo metodo, solo che il mio inglese
non essendo così buono mi ha consigliato di chiedere informazioni prima di
creare qualche casino.
Vi ringrazio anticipatamente per ogni tipo di aiuto.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

    tmp = realloc(tmp,strlen(argv[i));
Dimenticato una ] dopo la i.
Ehm... Problema... Tu vuoi ingrandire ogni volta il buffer... Ma quello che
stai facendo tu è diverso. Gli stai cambiando la dimensione. Devi salvare la
lunghezza del buffer da qualche parte e aggiungere.
Inoltre ricordati che strlen("Pippo") = 5, ma ti servono 6 caratteri (\0
finale!)
--- bye

 finale!)
[Re:]
In effetti mi ero completamente dimenticato del terminatore.
Quindi la cosa migliore è come mi hai detto nella tua repli, è fare il
calcolo della dimensione totele di tutte le stringhe + gli spazi + il
terminatore ed allocare la memoria necessaria, giusto?
Dubbio amletico, ma anche nel metodo newString(....) descritto sopra, devo
tenere conto del terminatore?
Ciao e grazie mille.


 tenere conto del terminatore?
Sě.
strlen restituisce la lunghezza ESCLUSO IL TERMINATORE, quindi sě! Non č che
se tu fai una cosa in una funzione allora funziona in maniera diversa :-)
--- bye
Newsgroup: it.comp.lang.c
Titolo: funzioni

Salve a tutti,
vorrei riaprire una vecchia questione su typedef e sulle funzioni che
avevamo discusso insieme qualche anno fa. Sicuramente EMG e Andrea Laforgia
se ne ricorderanno.
Come voi avevate precisato le funzioni non sono un tipo di dato. Pienamente
d'accordo su questo.
Pero scartabellando un standard preso dalla scuola, si precisava la sintassi
di typedef:
typedef <old type name or declare type> < new name>;
quindi secondo tale standard, ditemi se ho inteso male la sintassi
presentata, una dichiarazione come:
typedef int funzione(int, int);
viene interpretata come la creazione di un alias - di nome funzione - verso
un ipotetico tipo di dato funzione - int(int, int).
Lo stesso mio compilatore, dato che ho provato l'uso di sizeof in questi
termini - pur sapendo che doveva restituirmi errore-:
sizeof(int(int, int));
Ansi C forbids the using of sizeof with a function type.
???
Sapevo che un puntatore a funzione č un tipo di dato, ma come mi avevate
precisato una funzione in senso stretto non lo č.
Grazie e ciao.

precisato una funzione in senso stretto non lo č.
Scrivere :
typedef int funzione( int, int ) ;
e' sicuramente legale.
Meno legale e' usare questo tipo di dato per qualsiasi operazione che
non sia la definizione di un puntatore a funzione.
funzione *fn_ptr ;
Scrivere sizeof( funzione ) e' illegale, mentre e' legale scrivere
sizeof( (funzione *) ) o sizeof( int(*)(int,int) ).

Newsgroup: it.comp.lang.c
Titolo: [OT] substitution in VI

non ricordo come si va una sostituzione ricorsiva di un pattern arbitrario
da inizio a fine file.
Ho bisogno di eliminare tutti i ^M su dei moduli C!
Il comando che usavo era simile a questo: /1:$/s/^M//g...
purtroppo non ricordo piu' come si fa...
Allora pongo la domanda in questi termini:
Qualcuno č in grado di aiutarmi?  :)
Grazie


I'm not prejudiced, I hate everyone equally.

 Qualcuno è in grado di aiutarmi?  :)
Newsgroup: it.comp.lang.c
Titolo: winuser

a che serve sto header? sapreste dirmi come fare le finestre per la
selezione dei files..... spero si possa fare e non solo col C++ o visual C

selezione dei files..... spero si possa fare e non solo col C++ o visual C
Secondo me non sei nel posto giusto.
Per la programmazione in win32 c'e' it.comp.programmare.win32
Per la cronaca, il Visual C non e' un linguaggio, ma compilatore+IDE e
compila sia C, che C++ (anche Objective C e C# credo, ma e'
irrilevante), quindi se si puo' in C o in C++ ovviamente puoi anche
con il Visual C :)
Mox.

Newsgroup: it.comp.lang.c
Titolo: [HELP] SQUEEZE

Ciao a tutti. La funzione squeeze(s,c) descritta nel K&R è una funzione di
libreria? Se si, quale? Per evitare in futuro questo tipo di domande
certamente banali, come faccio a sapere se una funzione è di libreria?
Vi ringrazio per la collaborazione
Ciao

...

Ciao Roberto,
se vai nelle ultime pagine del K & R , troverai un indice dove sono elencate
fra le altre cose, tutte le funzioni di libreria e non citate nel libro
stesso.
Li´ viene anche specificato se la funzione in questione e´ di libreria.
Guardaci e vedrai che squeeze() viene descritta come funzione e non come
funzione di libreria. (Sto parlando dell´edizione inglese, in quella
italiana non so come e´ stato tradotto).
Maurus

ok grazie. Anche nell'ed. italiana è lo stesso e hai ragione, squeeze è una
funzione creata dal progr.
ciao e grazie di nuovo
"Maurus" <REMOVE...@rocketmail.com-REMOVE> ha scritto nel messaggio
news:9j8m1k$4fr$1...@newstoo.ericsson.se...

Newsgroup: it.comp.lang.c
Titolo: Manuali C/C++

Ciao a tutti...
chi mi puo' consigliare degli ottimi manuali di C e di C++ in italiano...
e magari uno anche su Delphi... THX a LOT....
se potete rispondetemi direttamente in casella mia.... CIAO .D.

 wrote in message
10qo8kh$qih$1...@fe2.cs.interbusiness.it...

E che ne diresti anche di un buon manuale di cucina? ;-)
qui si parla di C, e il gruppo è dotato di FAQs che sono fatte apposta per
risolvere questi problemi. Cerca lì (vedi firma)
buon lavoro
Marco
--
Marco Coppo
University Of Sheffield
FAQ di it.comp.lang.c:
http://www.programmazione.it/linguaggi/c/itcomplangc.htm


Scusa una la domanda stupida ma uno quando entra in un newsgroup come fa a
saere a che indirizzo trova le FAQ?
$Ale$

Newsgroup: it.comp.lang.c
Titolo: Enumerare cartelle all'interno di una cartella....

Ambiente Linux...
Possibile che non esista un semplice findfirst/findnext in C (standard C 
intendo) ??????
 
Sembra (a quanto ho letto) che non sia fattibile direttamente...
Quel che vorrei è semplicemente fare l'elenco delle cartelle presenti 
all'interno di un'altra cartella (ovviamente quest'ultima è conosciuta:P)
 
Idee?
 
Ho trovato solo questa cosa che sembra interessante...(a voi il 
giudizio...):
 
 
http://stackoverflow.com/questions/612097/how-can-i-get-a-list-of-files-in-a-directory-using-c-or-c
 
 
 
PS: Sono un niubbo di C...è dal lontano 1994 che non ci metto 
mano...(negli ultimi 10 anni ho usato delphi in ambiente windows).

 
 
Sì, su linux si fa così (e personalmente trovo più facile opendir/readdir che findfirst/findnext).
Ciao!

 Ciao!
 
ok faccio cosě....cmq son gusti! :)
 
Thanks per la conferma
Newsgroup: it.comp.lang.c
Titolo: scanf() su Linux

Ma la funzione scanf() è inclusa in stdio.h o sbaglio?
Perchè un codice del genere mi genera un errore su Linux?:
scanf("%d", ciao);
--
Sparviere
spar...@ngi.it
http://sparviere.tsx.org

scanf("%d", ciao);
Sostituiscila con :
scanf("%d", &ciao) ;
Leggi un manuale sul linguaggio prima di scrivere nel gruppo:
Brian W. Kernighan, Dennis M. Ritchie
"Linguaggio C" II edizione

 scanf("%d", ciao);
perchè stai cercando di usare "ciao" come un puntatore, mentre suppongo 
si tratti di un semplicissimo int non inizializzato... devi passare i 
puntatori alle variabili, non le variabili vere e proprie

 scanf("%d", ciao);
Questo codice potrebbe anche funzionare. Dipende da che cosa e' ciao:
un puntatore ad una regione di memoria allocata con malloc ?
un semplice variabile int ?
un #define (scritto in minuscolo) ?
etc...
Insomma quando posti il codice ricordati di farci vedere tutto.
In questo caso dovevi farci vedere che cosa e' ciao. Io penso sia:
int ciao;
Se e' cosi' allora devi mettere scanf("%d", &ciao) ;
Devi passare l'indirizzo della variabile e non il valore della variabile.
(se ci pensi e' logico).
Alex

 ha scritto nel messaggio
news:p44T6.5700$%m1.2...@news.infostrada.it...


Chiedo scusa se non sono stato chiaro...
Comunque questo è il codice completo per capire la situazione:
int ciao;
scanf("%d", &ciao); //nel precedente post ho dimenticato la &
                               //ma nel codice l'avevo messa. però il gcc
                              //mi dà cmq errore di compilazione.
--
Sparviere
spar...@ngi.it
http://sparviere.tsx.org
"Andrea Laforgia" <xx...@xxxxx.xxx> ha scritto nel messaggio
news:qrjphtc600doke8ae...@4ax.com...


                               //mi dà cmq errore di compilazione.
Che errore ti da ?!?
Hai incluso stdio.h ???
Alex

                              //mi dą cmq errore di compilazione.
Molto strano, sei sicuro che non sia un warning ?
Che errore ti da' ?
Newsgroup: it.comp.lang.c
Titolo: [+ o - OT] Cerco simulatore di bancomat

Salve, sto cercano un simulatore di bancomat in C/C++ con salvataggio e
lettura su file.
Grazie e scusate se è OT
Ciao
--
Timothy Redaelli

 lettura su file.
<CODE>
#include <stdio.h>
int main()
{
    unsigned long importo, importo_distr;
    unsigned long n500, n200, n100, n50, n10;
    puts("Simple Bancomat\n");
    printf("Digitare l'importo: EUR "); scanf("%lu", &importo);
    n500 = n200 = n100 = n50 = n10 = 0L;
    while (importo >= 10L)
    {
          if (importo >= 500L)
          {
             importo -= 500L;
             n500++;
          }
          else
          if (importo >= 200L)
          {
             importo -= 200L;
             n200++;
          }
          else
          if (importo >= 100L)
          {
             importo -= 100L;
             n100++;
          }
          else
          if (importo >= 50L)
          {
             importo -= 50L;
             n50++;
          }
          else
          if (importo >= 10L)
          {
             importo -= 10L;
             n10++;
          }
    }
    importo_distr = n500 * 500L + n200 * 200L +
                    n100 * 100L + n50 * 50L + n10 * 10L;
    printf("\nL'importo distribuito e' di EUR %lu \n"
           "cosi' suddivisi:\n"
           "\n"
           "%5lu da 500 pezzi\n"
           "%5lu da 200 pezzi\n"
           "%5lu da 100 pezzi\n"
           "%5lu da  50 pezzi\n"
           "%5lu da  10 pezzi\n\n"
           "Grazie per aver usufruito del nostro servizio\n\n",
           importo_distr, n500, n200, n100, n50, n10);
    while (getchar() != '\n');
    printf("Premere INVIO per uscire...");
    getchar();
    return 0;
}
</CODE>
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

     return 0;
[...]
... non mi sembra che per uscire? da un bancomat  si debba digitare
INVIO. :-)
Ciao Roberto

Newsgroup: it.comp.lang.c
Titolo: Codici di controllo stampante

Salve a tutti,
tempo fa avevo scritto un programma sotto MS-DOS in cui usavo vari tipi di
stampanti ad aghi e deskjet..
Siccome ho comprato una HP deskjet 840c e siccome uso ancora quel programma
mi servirebbero i codici di controllo PCL per detta stampante che nel
manuale non ci sono.
Li ho cercati dappertutto  ma non li trovo (credo siano PCL-5).
Me ne serveono solo alcuni e in particolare:
Bold on/off,
superscript on/off, subscript on/off, testo di dimensioni 6 punti, 8, 12, 24
e 36 punti e ritorno alla stampa normale, reset e pochi altri tra cui
settaggio del numero delle righe per pagina perchè non riesco a scrivere
fino ai bordi superiore ed inferiore.
Potete aiutarmi?
Se mi sapete dire dove trovare l'intera lisa è perfetto.
Grazie
P.Pietro

 manuale non ci sono.
Sei nel posto sbagliato. Penso che una ricerca con Google possa fornire 
utili indicazioni, altrimenti ti conviene rivolgerti al produttore.

 Li ho cercati dappertutto  ma non li trovo (credo siano PCL-5).
Provato con Google e la stringa di ricerca "pcl5 printer control codes"?
Io ho trovato 733 documenti impiegando 0.09s
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c
Titolo: Comunicazioni tra processi concorrenti

Cerco un aiuto per questo progetto: devo specificare, progettare e
realizzare in linguaggio C (s.o. UNIX) un ambiente dimostrativo delle
comunicazioni tra processi concorrenti cosi' strutturato.
"Il processo padre deve creare N processi figli, con N>4. Lo stesso processo
padre deve calcolare periodicamente e mandare a ciascun processo figlio il
valore medio dei dati ricevuti dai figli a partire dall'attivazione iniziale
fino a quel momento (inizialmente i valori ricevuti si assumono nulli). Ogni
processo figlio deve ricevere dal padre il valore medio sopra detto e
aggiungere un numero casuale compreso tra -100 e 100, rispedendo tale valore
al processo padre. Ad ogni iterazione, i processi figli devono visualizzare
ognuno il valore spedito al padre, mentre il processo padre deve
visualizzare il valore medio che verra' trasmesso ai figli. Il processo
padre deve terminare l'esecuzione non appena il valore medio da inviare e'
al di fuori dell'intervallo compreso tra -20 e 20".
Grazie
Luca

 writes:

Perche' pensi che vogliamo fare noi i tuoi compiti?
-- 
Maurizio Loreti                      
http://wwwcdf.pd.infn.it/~loreti/mlo.html
Un. of Padova, Dept. of Physics - Padova, Italy          
lor...@padova.infn.it

>Perche' pensi che vogliamo fare noi i tuoi compiti?
Io non ho chiesto di fare voi i miei compiti: semplicemente ho chiesto un
aiuto, altrimenti avrei detto "qualcuno mi puo' fare un progetto...
ecc.ecc.". E poi non mi permetterei mai un'azione del genere. Per chi mi hai
preso? Sono uno di quelli che vuole imparare, non andare avanti a sbafo...
Ciao
Luca

Lugost (
lug...@tin.it
) wrote:
: >Perche' pensi che vogliamo fare noi i tuoi compiti?

Ottimo. Allora comincia a buttare giu' qualcosa, e quando ti blocchi
posta il problema /specifico/, con delle domande /specifiche/ e se e'
il caso il pezzo di codice incriminato.
La tua domanda era cosi' generica che un 'occhio distratto' ;) poteva
pensare che tu volessi il programmino gia' tutto bello fatto...
A proposito, forse NG come it.comp.unix o it.comp.linux.development
sono piu' adatti a domande di questo tipo.
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)


Ok. Grazie del tuo consiglio. Semplicemente, non essendo per niente pratico
del linguaggio C, non sapevo quali primitive utilizzare. Mi hanno detto di
lavorare con socket e fork... comunque faro' come dici: comincio a buttar
giu' qualcosa e faccio sapere.
Grazie e ciao
Luca
Newsgroup: it.comp.lang.c
Titolo: Help, cerco config.h per windows

Come da oggetto non riesco a compilare un file perchč mi manca questo file,
sapete dirmi dove andarlo a prendere?
Grazie
Claudio

 Claudio
Dato che e' per windows, qui sei OT, dovresti chiedere su 
it.comp.programmare.win32
Anyway, questo mi pare di piu' un file generato dagli autotools. Leggi 
il README. Cmq: configure, make, make install.
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */
Newsgroup: it.comp.lang.c
Titolo: [help!] puntatori usti male? il mio exe crasha

ciao a tutti, sto cercando di scrivere dei piccoli programmini ma ho dei
problemi a gestire l'input da file ed i puntatore...
riporto il sorgente, e segno dove va in crash:
mille ringraziamenti a chiunque mi aiuterà!
================================
/*variabili globali
  */
char	file_input[MAX_FILE_NAME_LENGTH];
FILE  *	in;
int main (int argc, char *argv[] ) {
	signed short int Codifica;
	...
	in = fopen( file_input, "r");
	leggi_info( ..., &Codifica, ... );
	...
	return 0;
}
void
leggi_info( ... , signed short int * Codifica, ... )
{
	...
	//qui va in crash esattamente qui
	fread(&Codifica, 2, 1, in);
	if( *Codifica != 1) {
		printf("ERRORE: blablabla...\n");
		exit(1);
	}
	...
	return ;
}
================================

         fread(&Codifica, 2, 1, in);
Qui stai passando l'indirizzo di un puntatore, che non è quello che
presumibilmente intendevi fare. In realtà volevi scrivere:
            fread( Codifica, 2, 1, in);
Max


giusto! grazie!

Newsgroup: it.comp.lang.c
Titolo: Esercizi

Mi sapreste consigliare un buon libro di esercizi in C, magari anche da 
scaricare via internet (opzione preferibile :-).
Ciao a tutti
-- 
Davide Petilli
e-mail. 
davide....@NOSPAM.libero.it
Per scrivermi togli NOSPAM dal mio indirizzo!

 ha scritto nel messaggio
news:GJS87.21629$0Z1.8...@news.infostrada.it...

Newsgroup: it.comp.lang.c
Titolo: Traffico in rete

Holà!!!
Da poco mi è venuta in mente un'ideuccia, peccato che con le mie
scarse conoscenze di programmazione C abbia incontrato subito delle
difficoltà.
Mi era venuto in mente di realizzare un programma, possibilmente
scritto in C che monitorasse tutto il traffico in entrata ed uscita di
un singolo programma, per esempio monitorare il traffico in
entrata/uscita da programmi come icq o c6...e magari salvare il tutto
in un unico file di testo.
E' possibile realizzare in C una roba simile? Avete qualche idea?
Soprattutto come fare a dire al programma di escludere x esempio il
traffico di INTERNET EXPLORER oppure OUTLOOK ma considerare C6 o
ICQ......
Spero di essermi spiegato decentemente!
Ciauz!!!
Mauro

 in un unico file di testo.
   Esiste gia`, si chiama tcpdump. Cercane i sorgenti, e` open source.
-- 
Alla prossima,
Marco

Thanks a lot!!!!!!!
Mauro


Newsgroup: it.comp.lang.c
Titolo: Ricerca sottostringa in una stringa (senza usare string.h)

Devo fare una funzione che cerca una sottostringa in una stringa senza 
usare string.h.
La funzione deve restituire 1 in caso di pattern trovato, -1 in caso di 
pattern non trovato.
Questo codice non funziona, quando il pattern è nella stringa entra in 
un loop infinito.
Dove sbaglio? So che è un algoritmo stupido, ma non riesco a 
"visualizzare" mentalmente i problemi con i cicli annidati e mi perdo in 
un bicchier d'acqua :-(
PS: strlenght è l'equivalente di strlen, sempre fatta senza usare string.h
int compstring (char *stringa, char *pattern)
{
   int i=0,j=0;
   int len_s, len_p;
   len_s = strlenght(stringa);
   len_p = strlenght(pattern);
   while (j < len_s) {
     while (i < len_p) {
       if (pattern[i] != stringa[j]) j++;
       else {
	j++;
	i++;
       }
     }
   }
   for (i=0; i<len_p; i++) {
     while (j<len_s) {
       if (pattern[i] == stringa[j]) j++;
     }
   }
   if (i == (len_p-1)) return (1);
   else return (-1);
-- 
God is real, unless if declared integer.
Powered by Debian GNU/Linux

 un bicchier d'acqua :-(
Il codice che hai postato è altamente "insensato". Credo che dovresti 
analizzare meglio il problema, prima di cominciare a scrivere. Quando 
scrivi un ciclo pensa agli invarianti, e alla condizione di uscita.
Il C si presta molto a questo tipo di funzioni, non ho resistito, mi 
sono cimentato anch'io nell'esercizio. La mia soluzione (non testata) la 
trovi più sotto.
E.
.
.
.
.
.
.
.
.
.
.
.
.
int compstring (const char *stringa, const char *pattern) {
   for(;;stringa++) {
     int i;
     for (i=0;pattern[i] && pattern[i]==stringa[i];++i);
     if (pattern[i]==0)
	return 1;
     if (stringa[i]==0)
	return 0;
   }
}

 usare string.h.
Esistono molti algoritmi. Guarda il Knuth-Morris-Pratt o il
Boyer-Moore-Horspool.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it