mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: pattern matching nelle stringhe

salve a tutti,
vorrei dei consigli su come implementare delle funzioni che mi
permettano di eseguire pattern matching in stringhe di testo. Magari
utilizzando le espressioni regolari, ma non e' necessario.
Per intenderci, mi servirebbe l'equivalente del modulo re.py di Python
(per chi lo conosce). E' possibile che non sia previsto nelle librerie
standard? <string.h> non mi e' di molto aiuto !!.
Lo scopo e' quello di vedere se in una stringa ci sono particolari
sequenze di caratteri oppure caratteri speciali ("\n","\0",numeri).
Qualche idea o qualche riferimento bibliografico??
grazie 1000
etienne
-- 
						it's time to leave this town
						it's time to steal away
						let's  go get lost
						anywhere in the U.S.A.   (RHCP)

 speciali ("\n","\0",numeri).
  La funzione strstr() non ti e` proprio di nessuno aiuto?
	Alla prossima,
		Marco

La FSF ha sviluppato librerie per regular expression matching; la C
library le contiene, ad esempio.  Ecco cosa dice 
http://www.gnu.org/
 :
========================================================================
The GNU C library supports two interfaces for matching regular
expressions. One is the standard POSIX.2 interface, and the other is
what the GNU system has had for many years.
Both interfaces are declared in the header file `regex.h'. If you
define _POSIX_C_SOURCE, then only the POSIX.2 functions, structures,
and constants are declared.
========================================================================
Puoi anche fare un salto su un mirror di 
ftp.gnu.org
 e prelevarti il
singolo package; il vecchio si chiama "regex", che e' stato sostituito
da "rx".  Prova 
ftp://sunsite.cnlab-switch.ch/mirror/gnu/rx/
 o
mirror/gnu/regex .
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

permettano di eseguire pattern matching in stringhe di testo. 
Cerca in rete riferimenti all'algoritmo di Boyer-Moore-Horspool o al
meno efficiente Knuth-Morris-Pratt.
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
-----------------------------------------------------
"There is nothing better for understanding a kangaroo
 than seeing it jump." [D.Grune, C.J.H. Jacobs]

]

La mia librerie per regular expressions si chiama YGrep Search Engine. No 
parliamo Italiano, ma si parla inglese o francese...
-- 
Yves ROUMAZEILLES is author of the YGrep Search Engine
27-31 rue Robert de Flers    Tél: 
+33 (0)1.45.75.92.75
75015 PARIS    (FRANCE)      GSM: +33 (0)608.750.486
                             Fax: 
+33 (0)1.34.04.30.99
http://ygrep.cjb.net/
        mailto:
YG...@usa.net
http://i.am/ygrep/
           mailto:
Roumazeill...@NO-SPAM.magic.fr
http://perso.magic.fr/roumazeilles/ygrep.htm
Newsgroup: it.comp.lang.c
Titolo: posizionare il cursore

esiste un modo per posizionare il cursore in un punto specificato dello
schermo?
ad esempio :  vai alla riga x e colonna y?
grazie

 wrote in message
news:85vg71$nd3$1...@lacerta.tiscalinet.it...


si, esiste..devi includere la libreria <conio.h> e la funzione che ti
serve sara' gotoxy(x,y) dove x e y sono le coordinate sullo schermo in
modalita' testo (cioe' da 1 a 80 per la x e da 1 a 25 per la y)


 ad esempio :  vai alla riga x e colonna y?
Standard no. Devi cercare sulla documentazione delle librerie comprese
nel tuo compilatore.
EMG

Newsgroup: it.comp.lang.c
Titolo: LEGGIMI.FA' LA TUA OPERA BUONA

S.O.S.  
Vorrei sapere dove posso trovare materiale on line, tipo appunti o dispense
universitarie, che sia una accessibile introduzione agli algoritmi e al
linguaggio Pascal.
Non sono uno studente di ingegneria ne' di informatica quindi vorrei
trovare qualcosa che sia scritta in modo semplice e che non presupponga
grandi conoscenze matematiche.
Aiutatemi. Ho un imminentissimo esame che mi aspetta e non so come fare!!!
Potete rispondermi attraverso questo newsgroup o, meglio,con una e - mail
all'indirizzo    
a.ge...@mclink.it
Grazie in anticipo.



Newsgroup: it.comp.lang.c
Titolo: Implementazione area di overflow

C'č qualcuno che ha qualche esempio di implementazione di area di overflow
in C.

 
Tutor at D.S.I. - University of Milan 

 Tutor at D.S.I. - University of Milan
Intendo la gestione indicizzata di un archivio, in cui abbiamo il file
indice, il file contenente l'archivio e la cosidetta "area di overflow", che
viene utilizzata per inserire i dati quando l'archivio esaurisce il proprio
spazio.

Per caso di buffer overflow?
Con questo nome io ho sentito chiamare una parte di record
in coda ad un insieme indicizzato. Se durante la ricerca
il record non viene trovato si fa una scansione sequenziale
della parte di "overflow".
Quando questa parte raggiunge dimensioni non trascurabili
si opera una riorganizzazione ordinando la sola parte di
overflow e facendo poi una operazione di fusione fra parte
indicizzata e area (ora ordinata) di overflow... qualcosa
di simile ai passaggi di fusione del merge sort.
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff
Newsgroup: it.comp.lang.c
Titolo: accesso array 2d con puntatori passati a funzione

ciao a tutti, perdonate la frequenza dei post ma mi sto cimentando con il mio primo programma "articolato" e vi chiedo aiuto su cose che non ho trovato ben spiegate nel mio libro (esempi troppo semplici).
mettiamo che nel main abbia allocato due matrici i cui punatatori passo alla seguente funzioni con  dcc(red, blu);
ora devo usare nella funzione i puntatori. peccato che un mese fa me la sono scritta tutta con gli indici!
allora ho cominciato a vedere se ero capace di farmi una fprintf della memoria tanto per sicurezza e scopro che non funziona.
scrive corretamente solo la prima riga (dove m,n sono zero).
 scusate non è vero che: f[x][y] = *(f[x] + y) = *(*(f+x) + y)?
se si nel mio caso f è già punatore e quindi si trasforma in quello che ho messo nel codice.
la matrice è di unsigned short.
grazie per l'aiuto!  ciao
void dcc(unsigned short *f, unsigned short *g) {
 unsigned short i,j,m,n,x,y,cazza,step,steps; // matrix index
 stream = fopen("red.csv", "w");
 for (n = 0; n < 1024; n++) {
  for (m = 0; m < 1280; m++) {
   fprintf(stream,"%d,",(*(f+m)+n)); // f[x][y]
  }
  fprintf(stream,"\n");
 }
 fclose(stream);
...

  scusate non è vero che: f[x][y] = *(f[x] + y) = *(*(f+x) + y)?
1) Se f e` un "unsigned short (*f)[m][n]" (un puntatore ad array 
bidimensionale di unsigned short, di m righe per n colonne), allora 
f[x][y] e` "(*(f+(x*n)+y))", che e` quello che uno si aspetta da una 
matrice.
2) Se f e` un "unsigned short *", f[x] e` gia` di per se un unsigned 
short, e f[x][y] non ha molto senso...
Purtroppo il primo tende a degenerare fin troppo facilmente nel secondo, 
nel senso che e` facile perdersi per strada le informazioni relative 
alle dimensioni.
IMHO, meglio far finta che gli array bidimensionali non esistano affatto 
in C, e concepire tutto sempre come array monodimensionale (o come array 
di puntatori).
Se ti serve una matrice di unsigned short di M righe per N colonne, fai 
semplicemente
     unsigned short * matrice;
     matrice = malloc(sizeof(unsigned short)*M*N);
e accedi agli elementi con
     matrice[(x*N)+y]
o (se preferisci)
     (*(matrice + ((x*N)+y))))
che tanto e` esattamente quello che farebbe il compilatore con gli array 
bidimensionali quando non perde le informazioni per strada...
PS: il tuo fprintf() e` sbagliato perche` ti dimentichi di moltiplicare
      m * 1024 :-)
-- 
   |   \    \  | ___|_  |_  | ianezz a casa sua... :-)
   |  _ \  | \ | _|    /   /  Visita il LinuxTrent a
  _|_/  _\_|  _|____|___|___| 
http://www.linuxtrent.it

penso che i ringraziamenti siano da mandare in privato, non so cosa dice 
la netiquette in proposito.
però non ho la e-mail giusta (senza anti-spam) e te li posto.
quindi grazie per l'aiuto.
ora proverò i tuoi suggerimenti preziosi.
è bello il ng perché aiuta a trasformare quello che ho letto sul =
libro di c in qualcosa che funziona...
;-)
se mi incasino ancora posterò di nuovo...
buona giornata.
maurizio
Newsgroup: it.comp.lang.c
Titolo: stampa secondo abbinamento ascii su file esterno

Salve.
Mi esercito con l'apertura file, e scriverci qualcosa.
Qui però nel file di testo crato non mi viene stampata la
successione numerica, pocansi creata (e riprodotta bene dalla
printf, ma con fwrite c'è nel file l'abbinamento al carattere
secondo il cod. ascii.
Perchè? Qualche proprietà di fwrite che ignoro?
Come fare perchè fwrite mi metta nel file una cosa del tipo "1 2
3 4 5 6....)?
#include <stdio.h>
FILE *pt;
int main()
{
int array[80];
int x;
for (x=0;x<80;x++){
		array[x]=x;
	printf("%d\n",array[x]);}
pt=fopen("filetesto.txt","w");
fwrite(array,sizeof(int),80,pt);
}
Grazie
-- 
Inviato da Virgilio 
http://newsgroup.virgilio.it
..un servizio di news via web con in piu' l'antispam

 3 4 5 6....)?
devi usare un altra funzione...
fwrite va bene per i valori binari, non
per stampare.
Per mettere la stringa "0 1 ..." usa piuttosto la fprintf,
tipo:
FILE *f;
f=fopen("ciccio.txt","w");
for (i=0; i<20; i++) fprintf(f,"%d ", i);
fprintf(f,"ciao\n");
fclose(f);
ti mette in ciccio.txt
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ciao
ciao,
e.
Newsgroup: it.comp.lang.c
Titolo: ALT + F4

Salve come faccio a simulare la pressione dei tasti in oggetto?
Infinitamente Grazie!

Salve come faccio a simulare la pressione dei tasti in oggetto?
Saro' felice di dirtelo su it.comp.programmare.win32.
--
Andrea Laforgia (ICQ 87230455)
"A C program's trick is sometimes a C++ program's trap"
                                          [S.B.Lippman]

Newsgroup: it.comp.lang.c
Titolo: Problema con più sorgenti...di nuovo ^_^

Ciao a tutti...ho un progetto su più sorgenti( file.c , funzio.c e
funzio.h),il compilatore però mi da il seguente errore:
undefined symbol listinsert(e near*,int) in module file.c
Come mai?
Listinsert e la funzione di  inserimento in lista ed è scritta nel file
funzio.c, mentre nel file file.c è presente il main che richiama tale
funzione...
Grazie 1000 a tutti!
Enrico S.
--
Webmaster della Pagina NON Ufficiale del SonyCRX100
SonyCRX120,  SonyCRX140E/S, SonyCRX100EX, HP8100
HP8200, HP9100 & HP9200
http://www.freeweb.org/computer/SonyCRX100/

Ho fatto una piccola disattenzione...tutto risolto ora! Scusate il disturbo!

Newsgroup: it.comp.lang.c
Titolo: Seno e coseno!

E' normale che in C su math.h non ci siano le funzioni di seno e coseno?
Uso gcc come compilatore!
grazie

 Uso gcc come compilatore!
Allora ci sono, vediamo se la sfera di cristallo funziona: ti compare un 
errore in fase di linking, nonostante la compilazione vada a buon fine, che 
dice "undefined reference to sin"... prova a dare al GCC questa opzione 
"-lm" (leggiti la man page per sapere cosa significa... trovarei molte cose 
interessanti in quella parte di man.
-- 
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."

 interessanti in quella parte di man.
purtroppo compilo per GBA appena gli do -lm va tutto a quel paese!
unica soluzione g++ :-\
ciao e grazie

Newsgroup: it.comp.lang.c
Titolo: per rhimes ancora una volta

ho fatto una rubrica......
quando la si lancia appare un menu con diverse funzioni....
io digito"stampa utente"
mi viene chiesto nome e cognome.....come facci per parlo stampare....in
c.???
e poi.....in c come faccio a comunicare con la porta del modem???
grazie per l'attenzione

 grazie per l'attenzione
Mi sembra che tu stia facendo molta confusione.
La stampa è argomento che dipende dal sistema operativo, nel linguaggio in 
se non esiste. 
Così come le comunicazioni con la porta modem, ammesso che sia veramente 
questo quello che vuoi fare (comandi AT? trasferimento dati? implementare 
lo z-modem? interessante, per carità, ma c'è da lavorare...) non esiste 
niente nel linguaggio ed è argomento che dipende da librerie esterne (salvo 
che tu non ti diletti in assembly). Sempre che tu non intenda un'altra 
cosa, ovvero comunicare via internet... in tal caso con la porta modem non 
hai nulla a che fare, usi il protocollo di rete e anche in questo caso 
dipende da che sistema/compilatore/libreria vuoi usare.
In ogni caso gli argomenti sono ot e decisamente vasti per essere 
affrontati in un dibattito. Su domande precise si può anche rispondere, ma 
su domande generiche "come faccio a..." devi documentarti. Per carità, puoi 
trovare anche colui che pazientemente ti spiega tutto l'argomento...
Newsgroup: it.comp.lang.c
Titolo: scrivere da una stringa in un int

Devo scrivere il numero contenuto in una stringa in un int. Non mi 
ricordo il nome della funzione.
sprintf scrive il contenuto di un intero in una stringa, a me servirebbe 
la funzione contraria
Grazie anticipatamente
Ciao
-- 
-Diego (Atos)-
-L'uomo č superiore agli animali-
-Fanno eccezione il nano e la giraffa-
-A.Bergonzoni-
-Per rispondere in privato potare "POTA" dall'indirizzo-

 Ciao
atoi

mi scuso se sono un po' fuori dal corretto nw, ma esiste una funzione che
faccia lo stesso anche in Fortran?
Grazie
C.
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

Newsgroup: it.comp.lang.c
Titolo: lista semplice

Salve a tutti
come si puo' correggere la funzione per costruire una lista semplice dove si
aggiunge ogni nuovo elemento alla fine?
struct tab1
{ char nome1[38];
char codice[5];
char telefon[20];
char fax[20];
char cap[6];
char citta[20];
char indiriz[45];
char note[51];
struct tab1 *next;
} info;
void nome_funzione(struct tab1 *i, struct tab1 **punt)
{
if(!*punt) { *punt =i; i->next =NULL;}
else {(*punt)->next = i; i->next=NULL; *punt=i;}

 ha scritto nel messaggio
news:9c1er5$6vc$1...@nreadA.inwind.it...

Prima cosa o hai già il puntarore alla fine della lisa ... o te lo trovi:
if(old)
  while(!old->next) old = old->next;
fai una cosa del genere:
old->next = new;
new ->next = NULL; /* questo dovrebbe essere già inizializzato prima di
passarlo!*/
i parametri sono:
void append(struct *old, struct *new);
magari sarebbe + opportuno se append restituisse la testa della lista (il 1°
elemento). Ho usato old e new x essere + chiari ... spero si capisca!! Non
ti ho riportato tutto l'algo ... tanto per lasciarti un po' di sforzo
mentale che non fa mai male!

aggiunge ogni nuovo elemento alla fine?
Funzione scritta al volo, non controllata e non compilata :
void aggiungi_nodo( struct info **p_testa, struct info dati )
{
    if ( *p_testa == 0 ) 
    {
       *p_testa = malloc( sizeof **p_testa ) ;
       (*p_testa)->next = 0 ;
       strcpy( (*p_testa)->nome1, dati.nome1 ) ;
       strcpy( (*p_testa)->codice, dati.codice ) ;
       strcpy( (*p_testa)->telefon, dati.telefon ) ;
       strcpy( (*p_testa)->fax, dati.fax ) ;
       strcpy( (*p_testa)->cap, dati.cap ) ;
       strcpy( (*p_testa)->citta, dati.citta ) ;
       strcpy( (*p_testa)->indiriz, dati.indiriz ) ;
    }
    else 
      aggiungi_nodo( &(*p_testa)->next, dati ) ;
}
Newsgroup: it.comp.lang.c
Titolo: Interagire con Linux

Salve a tutti, premetto che non programmo da molto tempo in c, sono un 
novizio...
Ora, vorrei sapere come faccio a dire al C che voglio conoscere l' 
utente che ha lanciato il programma... Mi potreste aiutare?

vai su it.comp.os.linux.development


Credo che getuid() faccia al caso tuo (controlla con man, ha delle 
dipendenze naturalmente). Altrimenti prova "apropos user | grep get"
Cordialita'
enos

Newsgroup: it.comp.lang.c
Titolo: sempre su system()

Scrivendo:
#include<stdio.h>;
#include<stdlib.h>;
 main(int argc, char *arg[])
 
 {
 system ("dir");
 }
il controllo semantico mi scrive:
'#include' expects ”FILENAME” or <FILENAME
Sapete dirmi dov'e' l'errore?
OT:
Ho scoperto che i caratteri “” sono prodotti dalla mia tastiera compaq 
usando la stessa combinazione di tasti se il carattere precedente e' uno 
spazio oppure un altro carattere.
Mai visto una cosa simile..
Sono indeciso tra cambiare antivirus o chiamare un esorcista ;)
 


Negli include mancano gli spazi che separano i tokens:
#include <stdio.h> etc.
HTH

 #include<stdlib.h>;
non so se puo' dare quell'errore ma non dovresti mettere il ';', scrivi
solo:
 #include<stdio.h>
 #include<stdlib.h>
ciao
donCiccio

Sapete dirmi dov'e' l'errore?
Non si richiede che le direttive per il precpompilatore siano concluse con
";".
In altre parole prova con
#include <stdio.h>
#include <stdlib.h>
e la cosa vale per tutte le altre direttive per il precompilatore (tipo
#define ecc..).

Newsgroup: it.comp.lang.c
Titolo: Scanf e loop

 Grazie per la risposta...
 
Ragazzi mi scuso per la domanda sciocca e per non aver letto il
messaggio risolutore di Abacuc qualche riga piu' sopra!! Di solito
leggo sempre i messaggi passati ma dopo una giornata di lambiccamento
ero preso dallo sconforto!
Scusate ancora!
-- 
       Tremal-Naik -- Ghouls Emperor -- GnuPGid: 0xF093D6AD
E.A. Poe Klingon Translation Project: 
http://web.tiscali.it/tremal
List of my abandonware games: 
http://web.tiscali.it/tremal/abandon
    My miniatures page: 
http://web.tiscali.it/tremal/miniature

Salve a tutti!!
Ho un dubbio che mi ritorna dopo un paio d'anni d'astinenza da C...
Se mi ritrovo un loop simile:
   while(1)
    {
      int count;
 
      printf("\nPremere un tasto");
      scanf("%d", &count);
      printf("\nPremere un tasto ");
      scanf("%d", &count);
    }
come posso evitare che dentro il loop vengano eseguite automaticamente
le scanf che seguono la prima?
Grazie per la risposta...

Newsgroup: it.comp.lang.c
Titolo: Lettura da file

Ciao a tutti..
come avrete capito dal subject ho qualche piccolo problema con la lettura
dei file...
Per chiarici, ho un file fatto di stringhe di questo tipo:
A.3-127.0.0.1-65000
A.1-143.169.155.34-64800
B.2-142.126.156.12-64900
dove il primo elemento e' un codice relativo ad ogni persona collegata, il
secondo e' il suo indirizzo IP e il terzo la porta su cui e' connesso.
Ora....
come faccio a leggere stringa per stringa questo file? In partiolare mi
servirebbe ottenere per ogni stringa i tre elmenti separatamente... (nel
file sono separati dal carattere "-" ce non si puo' mai presentare in un
altro significato).
qualcuno sa darmi qualche consgilio?
Grazie mille,
LadyBug.

altro significato).
Prima cerchi di allocarti un buffer abbastanza grande da contenere
tutta la linea (o lo riallochi dinamicamente man mano oppure fai altri
giochini, dipende da come preferisci).
Fai una fgets (buffer, dimensione_buffer, file_pointer), quindi
potrebbe essere:
char buffer[256];
FILE * fp;
fgets(buffer, sizeof(buffer), fp);
A questo punto ti presento una tokenizer leggermente diversa da quella
della libreria standard:
<CODE author="Wietse Venema">
char   *mystrtok(char **src, const char *sep)
{
    char   *start = *src;
    char   *end;
    /*
     * Skip over leading delimiters.
     */
    start += strspn(start, sep);
    if (*start == 0) {
	*src = start;
	return (0);
    }
    /*
     * Separate off one token.
     */
    end = start + strcspn(start, sep);
    if (*end != 0)
	*end++ = 0;
    *src = end;
    return (start);
}
</CODE>
Questa e' compatibile con qualsiasi versione di C mai implementata, ha
una logica di funzionamento piu' intuitiva della strtok e soprattutto
e' sicura anche in ambienti multiprocesso :)
Ora che hai  questa funzione fai:
<CODE>
char * res;
while (res = mystrtok(buf, "-"))
	puts (res);
</CODE>
Al posto della puts(res) mettici cosa preferisci :)
-- 
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."
Newsgroup: it.comp.lang.c
Titolo: Espansione di una macro con autoincremento: come?

ciao
 avrei bisogno di far creare al preprocessore una serie di macro del
tipo
 0x00, 0x01, 0x02 etc
Mi spiego, vorrei sapere se esiste il modo di far
 espandere una macro in modo che ad ogni espansione questa viene
incrementata
#define PIPPO 0x00 /* definizione */
.
.
case PIPPO: /* PIPPO vale 0x00 */
 ------------
 ------------
 break;
case PIPPO: /* PIPPO vale 0x01 */
 ------------
 ------------
 break;
grazie
Enrico

Non è possibile fare ciò che dici, ovvero incremetare il valore della macro
in base a scelte effettuate nel programma, semplicemente perché le direttive
del preprocessore vengono compilate prima del programma. Dovresti scrivere
una sfilza di #undef e #define, perché qualsiasi istruzione del linguaggio
non verrebbe considerata:
Se scrivo
#define ME 1
for (;;) {
   #define TMP ME
   #undef ME
   #define ME  TMP+1
   #undef TMP
}
queste direttive vengono preprocessate una sola volta.
Un consiglio: per fare quello che chiedi è meglio se ti affidi a delle
variabili (oltrettutto con #define si definiscono costanti, non variabili
come vorresti).
Domenico Barra

Newsgroup: it.comp.lang.c
Titolo: Scansione di un file binario

Ciao , ho un piccolo problema. Devo scansionare un file binario byte per
byte tramite una serie di fread.
Il problema è che al primo accapo la fread ritorna il valore di EOF ed esce
dal programma.
Cosa dovrei fare , per leggere l'intero file?
Grazie per l'attenzione
Antonio

 wrote in message
news:UYkga.51385$Lr4.1...@twister2.libero.it...

Prova ad aprire il file con
fopen ("qualchenomedifile", "rb");
invece di
fopen ("qualchenomedifile", "r");
Byez
Newsgroup: it.comp.lang.c
Titolo: linkare con gcc e librerie

Salve,
spero di non essere OT...
Uso linux e gcc con le librerie gpib.
ora, ho copiato tutti gli headers .h, e in particolare ib.h, in /usr/
include (dove c'e' pure stdio.h e compagnia bella), ma
# gcc -o test test.c
mi ritorna "undefined reference ibwrt", dove ibwrt e' una funzione
definita in ib.h
con
# gcc -l /usr/include/ib.h test.c
mi dice che non riesce a trovare /usr/include/ib.h
non sono molto ferrato in gcc, ma mi sembra il tutto un po' strano.
ah, compilo da root.
consigli?
grazie in anticipo
mirko

iop wrote:

nei file .h tipicamente ci sono gli header
delle funzioni, tipo
int ciccio(int a, double b);
int pippo(char *foo, int *bar);
etc.etc.
nel tuo file .c ci dovra' essere all'inizio
una
#include<ib.h>
o
#include"ib.h"
a seconda di dove metti il file ib.h
una volta saputi gli header delle funzioni,
pero' il linker ha bisogno anche del codice delle
funzioni, gia' compilato, che sara' in una qualche
libreria che dovrai aver messo in /usr/lib o simili.
Supponendo che sta libreria si chiami libgpib.a o qualcosa
di simile, allora compilerai con
gcc -O6 test.c -lgpib -o test
forse ti devi chiarire la differenza tra libreria e
file .h , e leggerti la documentazione del gcc
altrimenti non avresti mai scritto una cosa tipo
gcc -l /usr/include/ib.h test.c
che non ha senso.
in ogni caso sconsiglierei la compilazione
(e quasi qualunque operazione...) sotto root.
g.


si si, lo so... ma non ho ancora trovato il modo di far accedere
utenti normali ai devices, pur cambiando i gruppi! un passo alla
volta...
Newsgroup: it.comp.lang.c
Titolo: system e argomento

Problema :
Devo inviare l'argomento che passo al mio programma al netstat richiamato
tramite la funzione system es:
mioprog.exe -na ---------->system("netstat +argomento")
come posso fare? nn ho idea di come passare l'argomento che ho passato al
mio programma al netstat che ho richiamato tramite  system.
Scusate il gioco di parlole.
Piattaforma windows.
tnx in anticipo
Grifisx



#include <stdio.h>
int main(int argc,char *argv[]) {
   int i=0;
   printf("%d\n",argc);
 
   for(i=0;i<argc;i++) {
	printf("%s\n",argv[i]);
   }
}
Questo ti mostra come recuperare gli argomenti passati da riga di
comando.
Quindi non ti resta che fare uno strcat di "netstat " e del parametro che
ti interessa, prima di lanciare la nuova stringa con system.
Ciao,
Riccardo
-- 
-=Riccardo Galli=-
 _,e.
s~  ``
 ~@.   ideralis Programs
.   ol 
 `**~  
http://www.sideralis.net

 ti interessa, prima di lanciare la nuova stringa con system.
Mi potresti dire come fare a passare la variabile a system? la sintassi
system(" "); mi costringe a inserire una riga ben determinata se metto
system(" variabile ",stringa); non mi fungerà.
Grazie in anticipo anche questa volta : )

 Grazie in anticipo anche questa volta : )
prego:
----------------------------------------------------------
#define WIN32_LEAN_AND_MEAN
#include <tchar.h>
#include <stdlib.h>
#include <stdio.h>
void main(void)
{
	char programma[256] = "netstat ";
	char parametro[256] = "-na";
	char comando[256];
	strcat(strcpy(comando, programma), parametro);
 
	system(comando);
	printf("Comando %s eseguito!", comando);
}
----------------------------------------------------------------
In realtà la var comando è inutile e di conseguenza sarebbe inutile anche
la prima strcpy, ma a scopo didattico sono "utili".
Ciao,
SoloOcchi
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 la prima strcpy, ma a scopo didattico sono "utili".
Si
 strcat(strcpy(comando, programma), parametro);
e' molto didattico su come evitare di scrivere codice.
Inoltre sooto Windows il nome di un programma puo' essere 255
caratteri, mettere a disposizione un array di 256 char e' anche
molto didattico sul paradigma "programma e spera".
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG


" Riccardo Galli" ha risposto al post di Grifisx |system e argomento| cosi:
[CUT]
Grazie ragazzi siete stati veramente gentilissimi  : )
Grifisx.
Newsgroup: it.comp.lang.c
Titolo: I/O formattato

ho provato ad eseguire queste semplici istruzioni, qualcuno sa dirmi perchè
non funzionano?
for(i=0;i<100;i++)
scanf("%c",a[c]);
grazie

 wrote in message
8ehdjl$ikf$1...@lacerta.tiscalinet.it...

perchè dovevi scrivere:
scanf("%c",&a[i]);
ci sono due errori:
1. a scanf devi passare l'indirizzo della variabile in cui vuoi mettere il
dato acquisito per cui devi usare l'operatore & (address of).
2. se vuoi mettere ogni carattere in nella cella successiva del vettore a[],
le devi indicizzare con la variabile i, che varia tra 0 e 100; come fai tu
metti il valore nella stessa cella x 100 volte (cioè la cella contiene
l'ultimo valore immesso)
ciao ciao
Marco
--
Marco Coppo
University Of Sheffield
FAQ di it.comp.lang.c:
http://www.programmazione.it/linguaggi/c/itcomplangc.htm

 scanf("%c",a[c]);
Non funzionano perché, ammesso che a sia definito come
char a[ nn ];
avresti forse dovuto scrivere
for(i=0;i<100;i++)
scanf("%c",&a[i]);
EMG

Newsgroup: it.comp.lang.c
Titolo: disegnare una retta in C

Salve gente,
mi sapete suggerire un set di funzioni per disegnare rette e simili in c?
tnx Peppe

 tnx Peppe
Ciao Giuseppe,
mi dovresti dare qualche info in +!
Quale sistema?Win o Linux?
Utilizzi qualche ambiente in particolare per lo sviluppo?
Ciao
Paolo

 Paolo
Newsgroup: it.comp.lang.c
Titolo: char ed unsigned char

Salve,
ho win98 ed il dev c++.
ho scritto questo semplice programmino per imparare le conversioni di tipo
********************************
main()
{
int i;
char *v1;
unsigned char *v2;
for(i=0;i<256;i++)
{
v1[i]=i;
v2[i]=(unsigned char)v1[i];
}
}
*****************************
Non ci sono errori di compilazione.
Però, quando lo mando in esecuzione, il windows mi apre la finestra di
errore:
"questo programma ha eseguito una operazione non valida e sarà terminato".
Or io chiedo: che c'è di sbagliato?
grazie
adriano meis

 grazie
prego :)


oltre a quello che ha detto camillo, consiglierei di iniziare dalle
basi...
Ciao Jack

 adriano meis
Come diceva camillo, bisogna allocare la memoria, altrimenti il programma 
da "Segmentation Fault"
Quindi va modificato così: (se imposti tu un limite al for, puoi mettere 
una define all'inizio).
********************************
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define MAX 256
void main()
{
	int i;
	char *v1 = malloc(sizeof(char)*MAX);
	unsigned char *v2 = malloc(sizeof(unsigned char)*MAX);
	for(i=0;i<MAX;i++)
		{
		v1[i]=i;
		v2[i]=(unsigned char)v1[i];
	}
}
*****************************
Spero di esserti stato utile :D

 	char *v1 = malloc(sizeof(char)*MAX);
sizeof(char) è sempre uguale a 1, su tutte le piattaforme.
Idem per la versione unsigned.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Salve,
ho win98 ed il dev c++.
ho scritto questo semplice programmino per imparare le conversioni di tipo
********************************
main()
{
int i;
char *v1;
unsigned char *v2;
for(i=0;i<256;i++)
{
v1[i]=i;
v2[i]=(unsigned char)v1[i];
}
}
*****************************
Non ci sono errori di compilazione.
Però, quando lo mando in esecuzione, il windows mi apre la finestra di
errore:
"questo programma ha eseguito una operazione non valida e sarà terminato".
Or io chiedo: che c'è di sbagliato?
grazie
adriano meis
Newsgroup: it.comp.lang.c
Titolo: [semiOT] HELP conversione!

Ciao,
ho estremamente urgenza a sapere come avviene la conversione di un numero in
base 4 in un numero in base 16!
So un po' nel pallone...e sugli appunti non trovo nulla!
Help please!
Many Thx
Byez
B@STI

è giusto che 321 in base 4 diventi 39 in base 16?
thx
byez
B@STI

Bastilani wrote:
 > ho estremamente urgenza a sapere come avviene la conversione di un 
numero in
 > base 4 in un numero in base 16!
 > So un po' nel pallone...e sugli appunti non trovo nulla!
I numeri non hanno base. O meglio, ne hanno una sola, che e` quella
della rappresentazione interna del calcolatore (ovvero 2). La base che
puoi cambiare e` quella della formattazione in stringa: il seguente
programma legge una stringa che rappresenta un numero in base quattro
dallo standard input e stampa sullo standard output una stringa che
rappresenta lo stesso numero in base 16. HTH.
<code>
	#include <stdio.h>
	#include <stdlib.h>
	int
	main(void)
	{
	  char buffer[16];
	  int  number;
 
	  fgets(buffer,16,stdin);
	  number=strtol(buffer,NULL,4);
	  fprintf(stdout,"%x\n",number);
 
	  return 0;
	}
</code>
-- 
Baci,
Mony

1000 grazie!
Ora vado a fare l'esame :(
byez
B@STI

Newsgroup: it.comp.lang.c
Titolo: da Verona

Ciao, qualcuno mi sa dire dove trovo a Verona una libreria che sia ben
fornita di libri di informatica? Cerco in particolare il  "Linguaggio C " di
Kernighan -Ritchie.
Grazie



Perdiana, finalmente sono d'aiuto pure io.
P.zza Bra, sotto il Liston, c'e' una libreria dove
ne ho intravisto una copia... sara' stato circa
dieci giorni fa... se vai da Ghelfi in via Mazzini
te lo procurano in poco tempo.
Ciao

Newsgroup: it.comp.lang.c
Titolo: aiuto socket e open ()

Sono un neofita della programmazione in C, e vorrei farvi due semplici
domande :
sto consultando la documentazione di Linux (che e' completissima) ma
(forse sono io di coccio ) non riesco a
capire a cosa servono i SOCKET e che differenza c'e' tra l'aprire un
file con fopen () e scriverci con fwrite e
leggerci con fread (), e aprire un file con open () e usare read () e
write ().
ho consultato anche le librerie socket.h e simili, ma dalle funzioni non
sono riuscito a capire granche'.
vi prego di essere piu' pratici possibile e di partire dalle basi.
tenete conto che la mia preparazione si ferma all'ultima pagina del
libro Programmare in C di Aitken e Jones.
grazie,
Antonio .



libro Programmare in C di Aitken e Jones.
Argh Paul Atkins :-)

 dei files oltre che con recv) e scrivere...
sostituendo la parola "PC" con "processo".
	Alla prossima,
		Marco


grazie, e alla prossima ...

Newsgroup: it.comp.lang.c
Titolo: Aiuto istruzioni Assembler Z80

Non sapendo a chi rivolgermi ed esendo io un C programmatore chiedo un
aiuto:
Qualcuno di voi ha, o sà dovo posso trovare il set delle istruzioni dello
Z80
Ringrazio chi mi offrirà un aiuto
trun...@libero.it


c'e' questa:
ftp://ftp.comlab.ox.ac.uk/pub/Cards/Z80

 ha scritto nel messaggio
news:cmDQ4.4955$Vo3....@news.infostrada.it...

Newsgroup: it.comp.lang.c
Titolo: Aiuto!programma c

Ciao Ragazzi,
vi vorrei chiedere un aiuto riguardo un programma client/server riguardante 
la gestione di un elenco 
telefonico.il
 programma è x piattaforma Linux, 
quando compilo il prog tutto ok ma a tempo di esecuzione, dopo l'inserimento 
dei dati, mi da un errore sulla chiamata semop!non so più dove cercare 
l'
errore.se
 qualcuno è disposto ad aiutarmi me lo dica così gli invio la 
specifica con il codice via email.
Grazie anticipatamente!
                                Avexander 


Inanzitutto, qui si parla di C++ standard. Quindi, che tu sia sotto 
Linux non dovrebbe influire, e soprattutto la 'semop' (qualunque cosa 
sia) non e' nello standard. Su it.comp.os.linux.development magari ne 
sanno qualcosa di piu'.
Inoltre, da errore... *che* errore? :P. Se non sai dove cercarlo tu 
avendolo sotto mano, figurati noi...
Infine, troverai difficilmente qualcuno che vuol fare il lavoro per te. 
Posta i pezzi di codice incriminato (o meglio: un programma minimale che 
mostra lo stesso comportamento errato), e qualcuno forse avra' un'idea. 
Ma soprattutto, fallo su un newsgroup dove qualcuno ti puo' piu' 
facilmente rispondere, conviene anche a te :-)
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://mbellett.web.cs.unibo.it/
Jabber: RedGlow  - Linux registered user 299762 @ machine 213003

Newsgroup: it.comp.lang.c
Titolo: ricerca turbo c...

prego chiunque sapesse o potesse mandarmi una copia del trubo c...
ringrazio anticipatamente (e parecchio che cerco dove scaricarlo)
lib...@sail.it

Vale anche per me...
Ciao!
--
Marco Iannaccone
ICQ: 18748121
IRC nickname: Tolkien
e-mail: 
captai...@ussvoyager.com
 
marcoia...@iname.com

Perche' non vai in edicola e ti compri Computer Magazine (£9000) che ti
regalano la versione completa del BorlandC++ v5.02?!!
ciao
donCiccio
Newsgroup: it.comp.lang.c
Titolo: Offerte di lavoro?

Scusate, ma ste cose non sono leggermente Off Topic?

Bo... penso di si, ma se sono utili a qualcuno di noi per beccare lavoro ben
vengano ;)
Ok... mi sto zitto ;)


hehehe ;)
Magari, io alcune le ho provate e solitamente si tratta di pacchi. Un mio
amico lo hanno preso a milano e lo sfruttano, 8-9 ore al giorno incluso il
sabato, pochissime ferie e 2.200.000 al mese.


... ovviamente può darsi che gli annunci ivi pubblicati siano più
affidabili, non lo discuto.

Domenico Troiano ha scritto nel messaggio ...

Quei post vengono malissimo e sono *molto* OT, fastidiosi e da maleducati.
Esiste tutta la gerarchia it.annunci.* e it.lavoro.* sia per chi e'
interessato a postare sia per chi e' interessato a leggere cose del genere.
Purtroppo la maleducazione e l'ignoranza oggi dilagano sempre piu'.
buona netiquette a tutti
bepin
P.S.: per inciso siamo OT pure noi con i nostri reply.


almeno noi a scopo recuperativo :)

eppoi raga, io sono il primo a criticare gli ot e lo spam, ma non si puo
essere cosi rigidi! secondo me altrimenti si finisce a vedere cosa è off
topic e cosa non lo è, quando lo scopo del nwsgrp è scambiare idee sulla
programmazione. ALCUNI svarioni sono normali!
Dome

interessato a postare sia per chi e' interessato a leggere cose del genere.
Aggiungerei che anche da questi comportamenti si capisce la serietą di
un'azienda.
-- 
Saluti,
    Mardy
Newsgroup: it.comp.lang.c
Titolo: C e porte parallele

salve gente,
sono agli inizi di questo linguaggio sotto linux e volevo un po' di
consigli...
dovevo fare un programmino che gestiva un lcd tramite porta parallela.
mettiamo che abbia gia il cavetto che va dalla porta parallela all'lcd, a
questo punto
mi manca il programmino che lo gestisce!!! avevo trovato un programmino su
internet che faceva al caso mio
peccato che girasse solo sotto win... riadattato alle mie esigenze ho
provato a compilarlo, e qui iniziano i problemi...
in tanto manca una libreria: conio.c sapete per favore dove posso reperirla
per linux?
se cio non esistesse volevo sapere una valida alternativa a questa libreria
o come posso fare comunque a fare una roba del genere.
in pratica devo mandare solamente un segnale (in HEX) a un cazzillo della
parallela.
gia che c siete.. se per favore potete dirmi dove posso reperire info su
queste cose in modo da imparare qual'cosina di utile.
ad esempio io ho trovato una paginetta
(
http://www.universal-developers.com/univ/unidi/crosasm4i.html#libc
) che
parlava di librerie
atte a queste funzioni, ma mi viene il dubbio che non siano reperibili o
comunque gratuite
tutto qua! be' in effetti č un po' lunghina la mia richesta...
comunque grazie a tutti in anticipo čer le risposte
ps
mi potete consigliare un manuale sulla programmazione in c per gli lcd?
(possibilmente in italiano e gratuito)
ancora grazie a tutti
--------------------------------
Inviato via 
http://usenet.libero.it



pps
scusate se vedete il msg 2 volte, ma non ho capito se č stato inviato


 provato a compilarlo, e qui iniziano i problemi...
ti cito questo topic di un forum di ngi
http://forum.ngi.it/showthread.php?s=&threadid=173878&highlight=sborone
e questo sito
http://www.jalcds.de/
resto non so tranne che la cosa che vuoi fare e' una figata :)
Newsgroup: it.comp.lang.c
Titolo: domanda sul tipo restituito di una funzione

Salve a tutti,
qualcuno puň spiegarmi gentilmente che differenza c'č tra queste 2 funzioni:
char prova1(char i){
    return i;
   }
char& prova2(char i){
   return i;
   }
il mio dilemma č: cosa cambia se il tipo restituito č char o char&?
grazie mille in anticipo
Salutoni Nikola

 
Che se fai
        char r1 = prova1( 'a' );
r1 varrà 'a'. Se fai,
        char r2 = prova2( 'a' );
r2 potrebbe valere un qualsiasi valore (ma anche bloccare l'esecuzione con 
una eccezione del sistema operativo, dipende dalla piattaforma dove giri). 
Anzi, se fai così:
prova2( 'a' ) = 'b'; // Lo puoi fare dato che char& è un l-value
è più palese. ;-)
Ciao.
-- 
---
*************** | Have you ever retired a human by mystake?
*** Azathot *** |
*************** | To contact me, ask me gently. Thanks.

 una eccezione del sistema operativo, dipende dalla piattaforma dove giri).
Puoi spiegarti meglio?
-- 
Qual è l'uomo che può conoscere un numero?

         char r2 = prova2( 'a' );
La risposta corretta e': se fai una cosa del genere il compilatore ti
segnala un errore essendo codice C++ e non C.
Nel caso di C++ puo' succedere tutto e il contrario di tutto in quando
si restituisce un reference (un "puntatore mascherato") ad una zona
di memoria che non esiste piu' all'uscita della funzione.
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c
Titolo: limiti di fopen o del SO??

Salve,
ho un programmino in C che gira su Solaris 5.8. Nel programma cerco di
aprire un file con fopen di circa 6GB. La funzione pero' mi
restituisce sistematicamente NULL.
Ho controllato i limiti della shell col comando limit e mi viene
restituito:
cputime         unlimited
filesize        unlimited
datasize        unlimited
stacksize       8192 kbytes
coredumpsize    unlimited
descriptors     256
memorysize      unlimited
Con file piu' piccoli, il problema non si pone. Sapete se e' possibile
bypassare questo limite?
Camelot

Bene, ho risolto il problema dell'fopen utilizzando... fopen64. Ma ora
e' nato un'altro problema...
Utilizzando il codice
struct stat64 file_status;
stat64(argv[1],&file_status);
printf("debug1:%d\n",file_status.st_size);
mi restituisc ecome dimensione del file sempre 1. Sapete perche'?
Camelot


 mi restituisc ecome dimensione del file sempre 1. Sapete perche'?
Quanto č sizeof(int)? Puo' darsi che %d non sia in grado di stampare 
numeri a 64 bit.
E.

Newsgroup: it.comp.lang.c
Titolo: Sono ancora qui alle prese con Lex e Yacc (VEGA sono quiiiii)

Ciao a tutti,
devo linkare un mio file insieme ai files obj prodotti
a partire da una serie di files lex e yacc, ma non
posso perchè lex ridefinisce per ogni file,
automaticamente, sebbene in modo diverso, le stesse
variabili e funzione (yyin, yy_push_state(), ecc.).
Come devo fare?! Finora non sono ancora riuscita a
trovare soluzioni funzionanti.
natty74
______________________________________________________________________
Do You Yahoo!?
Il tuo indirizzo gratis e per sempre @
yahoo.it
 su 
http://mail.yahoo.it
-- 
Posted from 
web10901.mail.yahoo.com
 [216.136.131.37] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Ho letto meglio il post (l'altra volta avevo capito una cosa x un'alta)
Quello che chiedi non si può fare (sono sicuro al 90%) perchè
nei diversi file oggetto hai le stesse funzioni.
Prova a rendere static tutte le variabili globali e le funzioni che sono
definite nello skeleton
di lex e yacc.  In questo modo non dovrebbero essere visibili "all'esterno"
del file.
Questo dovrebbe funzionare. Altrimenti puoi fare dei ".LIB" (per ogni
coppia lex,yacc invece che obj) che esportano SOLO la funzione che si
chiama la yyparse() e altro che ti serve rendendo static le variabili
globali
e le funzioni.
Spero di esserti di aiuto
Ciao!
Marco
Newsgroup: it.comp.lang.c
Titolo: Implementazione (sbagliata?) di buffer

Guardate un po'.... TC3 compila e termina correttamente, gcc mi va in seg
fault (quindi un puntatore?) dopo l'estrazione dell'ultimo elemento.
L'implementazione di buffer me la sono inventata, è almeno accettabile?
Ciao!
/* Feel the K&R power, luke */
#include <stdio.h>
struct quanto {
 int data;
 struct quanto *next;
};
struct quanto *first = NULL;
void add(int data)
{
 struct quanto *tmp;
 tmp = (struct quanto *) malloc(sizeof(struct quanto));
 tmp->data = data;
 tmp->next = first;
 first = tmp;
}
int read(void)
{
 struct quanto *tmp = first;
 struct quanto *prev = tmp;
 int i;
 while (tmp->next != NULL) {
  prev = tmp;
  tmp = tmp->next;
 }
 prev->next = NULL;
 i = tmp->data;
 free(tmp);
 return (i);
}
int main()
{
 int tmp;
 printf
     ("First in first out?... (0 interrompe)\n");
 while (tmp != 0) {
  scanf("%d", &tmp);
  add(tmp);
 }
 printf("Vediamo un po'...\n");
 while (first != NULL)
  printf("%d\n", read());
 return 0;
}

  printf("%d\n", read());
   read() non modifica first. Dopo l'estrazione dell'ultimo elemento,
first puntera` a un'area di memoria gia` liberata e "segmentation
fault".
-- 
Totuccio.

   printf("%d\n", read());
first non lo modifichi mai, dentro read().
-- 
Posted from  [80.105.34.80] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c
Titolo: Files in una Directory

Ciao a tutti, come faccio ad ottenere la lista dei file contenuti in una
directory specificata sotto Win?
Dovrei rimepire un array con la lista di tutti i file e di quelli contenuti
nelle eventuali sottodirectory.
Grazie
Wezzy


In C standard non puoi direttamente. Pero' puoi appoggiarti alle API
di Windows (o alle system call sotto DOS).
L'unico modo che hai per farlo in C standard e' usare la system:
system("dir C:\\windows > nomefile.txt")
Poi ti leggi il file e lo interpreti.
Metodo brutto e grezzo che ti ho dato solo per dovere di cronaca:
rivoltiti a it.comp.programmare.win32 e chiedi li :)
-- 
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."
Newsgroup: it.comp.lang.c
Titolo: ritornare più valori

Salve, come da oggetto, come devo definire una funzione in C che mi ritorni
un vettore invece che un solo valore?
Ho provato così
int funzione( int vettorein [10] ) [10];
......
funzione ( vettorein [] )
{
  ......
  return funzione[]
}
ma non mi funziona!
Saluti a tutti!
--
Angelo M. Figundio
figun...@tiscali.it
www.figundio.com
***********************************************
E il mio signore lo sa
una sola volta non basterà
che l'avvoltoio divori il mio corpo
per far tacere per sempre il mio cuore
(A. Branduardi)
*******************************************

 ritorni un vettore invece che un solo valore?
si usa un puntatore
int * funzione(){
 int res[10];
  return res;
}

 }
se non metti 'static' prima della dichiarazione il tuo array andra' perso.
essendo una variabile automatica, lo spazio allocato per res[] viene 
spazzato via all'uscita della funzione.
oppure (forse meglio)  usi malloc e torni il puntatore.
bye
-- 
    --==> ALoR <==---------------------- -  -   -
  There are only 10 types of people in this world...
  Those who understand binary, and those who don't.

 l'array oppure la struct e restituirne il puntatore.
Non č assolutamente il metodo piů usato, prendi ad esempio le funzioni 
della libreria standard che restituiscono una struttura. O restituisce una 
variabile static, oppure riceve un puntatore valido da riempire.
 

 
Per dirne una: 
char *fgets(char *s, int size, FILE *stream);
in pratica vengono allocati size byte, poi vi si fa puntare s, e infine vi 
si copiano n bytes presi da stream (il ritorno serve solo per verifica).
In generale, se devi allocare memoria all'interno della funzione per 
utilizzarla fuori, e' meglio passare un puntatore a cui assegnare la 
memoria allocata, altrimenti se richiami la funzione senza assegnare il 
valore di ritorno, ottieni un memory leak.
Ciao,
Cecco
Newsgroup: it.comp.lang.c
Titolo: eventi FileSystem

Ciao a tutti, 
dovrei realizzare un demone per monitorare una o più directory (o
partizioni), nel senso che devo sapere quando viene creato,
cancellato, spostato uno o più file. Il tutto sotto Linux/Unix.
Qualche tempo fa ho realizzato una cosa del genere sotto Windows con
il .Net Framework, ed è tutto molto semplice e ad alto livello, ma
sotto linux non so da dove iniziare  .
Se qualcuno di voi può darmi una dritta...ben venga... 
Grazie mille...

...

Ho appena scoperto in chat che esiste una libreria C che si chiama fam
(File Alteration Monitor) che credo faccia proprio al caso tuo...
http://oss.sgi.com/projects/fam/faq.html

Newsgroup: it.comp.lang.c
Titolo: passaggio di una variabile

Ciao,
Una curiosità: in che senso in C++ passaggio di una variabile per
riferimento e passaggio per indirizzo sono nozioni diverse? In C,
passaggio per riferimento è sinonimo di passaggio per indirizzo.
Grazie

 passaggio per riferimento č sinonimo di passaggio per indirizzo.
Non e' proprio corretto: in C il passaggio per riferimento non esiste e 
si ricorre a quello per indirizzo. Si usano per fare la stessa cosa ma 
sono due cose diverse.
ciao
Giacomo