mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: Creare una libreria personale [HELP newbie]

Ciao a tutti, sono da poco un autodidatta del C e non ho trovato
ancora da nessuna parte una spiegazione su come creare una libreria di
funzioni.
Ho tentato creando:
1) un file mylib.h con la definizione di macro ed i prototipi delle
    funzioni;
2) un file mylib.c che contiene il codice delle funzioni dichiarate in
    mylib.h e la riga	#include "mylib.h"	;
3) ho inserito la riga	#include "mylib.h"	nel file sorgente e da
    qui ho chiamato normalmente le funzioni definite in mylib.c come 
    se queste facessero parte della libreria standard;
4) ho compilato (uso gcc sotto Linux) il file sorgente con il comando
    "gcc sorgente.c"	ed ho ottenuto il messaggio
    "undefined reference to 'nomefunzione' " .
Dove ho sbagliato ? Cosa mi manca ?
Aggiungo che sorgente.c , mylib.h  e  mylib.c stanno tutti nella
stessa directory , che poi e' quella corrente da cui lancio gcc,
inoltre usando	"gcc sorgente.c mylib.c"		tutto viene
compilato alla perfezione, ma quando compilo sorgenti che fann uso
delle funzioni di libreria standard mica compilo ogni volta anche
tutti i file di libreria !!!
Suggerite numerosi, anche scrivendo a 
< 
dark...@mbox.vol.it
  >
ciao, Diego.

Non conosco gcc ma penso che l'errore sia un problema di link.
Infatti indicando a gcc solo il sorgente.c il linker non trova il corpo
delle funzioni e quindi ti da' un "unresolved external".
Se e' simile ai compilatori che uso io devi indicare anche mylib.c (sara'
ogni volta compilato) oppure mylib (o mylib.obj) se e' gia' compilato e non
lo vuoi ricompilare.
    gcc sorgente.c mylib.c            oppure         gcc sorgente.c
mylib[.obj]
Per creare una libreria .lib dovresti avere una utility insieme al
compilatore che ti permette di creare un .lib partendo da un .obj. In questo
caso dovresti compilare con:
    gcc sorgente.c mylib.lib
Ciao.
Antonio Donatiello
SANPAOLO S.p.A.

tutti i file di libreria !!!
le cose stanno cosi` :
 quando dai 'gcc sorgente.c' il compilatore compila sorgente.c in
sorgente.o, poi fa il link con la libreria standard c (libc.a).
se tu vuoi usare la tua libreria hai diverse soluzioni a seconda di
quanto e` grande la libreria. se la libreria e` un solo file (come nel
tuo caso) fai: gcc sorgente.c mylib.o [nota che e` mylib.o e non
mylib.c]. se la libreria e` composta da diversi file devi usare `ar`
per creare la tua libreria [non ricordo i parametri di ar].
creata la tua libreria con nome libmy.a la utilizzi cosi`:
gcc sorgente.c -lmy
ovviamente la libreria deve essere nel percorso di ricerca delle
librerie (gcc -print-search-dirs).
--
[ranger, email: 
ran...@queen.it
]
ICQ# 6585343
Newsgroup: it.comp.lang.c
Titolo: Two or more data type in declaration of init

Io ho scritto questo codice:
------------------------------------------------
void init (struct list *ptr,int size){
     ptr->size=size;
     ptr->first=ptr->size;
     ptr->free=0;
     ptr->buffer=(struct record*)malloc(size*sizeof(struct record));
     int count;
for (count=0;count<ptr->buffer;count++){
     ptr->buffer[count].next=count+1;
  }
}
------------------------------------------------
ma il compilatore da l' errore in oggetto. Che posso fare??? Qual' è l' 
errore???

 errore???
L'errore in oggetto (che pero` e` cortese riportare anche all'interno 
del messaggio in quanto alcuni newsreader non visualizzano l'oggetto e 
il testo contemporaneamente)
     Two or more data type in declaration of init
non e` dovuto a questa funzione.
Secondo me hai definito struct list subito prima della funzione ma non 
hai messo il punto e virgola:
     struct list {
         /* bla bla bla */
     }; /* <- qui ci va il punto e virgola */
Se non e` cosi`, l'errore sta da qualche altra parte, ma non si capisce 
a partire dal frammento che hai postato.
-- 
Enrico `Trippo' Porreca

      ptr->buffer[count].next=count+1;
Non e' che il tuo compilatore pretende che le dichiarazioni di
variabili stiano tutte ad inizio blocco?
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c
Titolo: [REQ] getopt

Mi sono recentemente imbattuto della funzione getopt che come sapete non 
è standard, quindi per utilizzarla (sono in windows) devo compilare con 
cygnus.
Il problema è che cygnus non è esattamente il mio compilatore preferito.
Mi chiedevo, visto che questa funzione è utilissima (mia opinione) e 
visto che non fa niente che non possa essere fatto in dos-windows, se 
qualcuno ne ha scritto una uguale (o simile) x win.
Grazie
-- 
Darkness beyond blackest pitch, deeper than the deepest
night! Lord of Darkness, shining like gold upon the Sea of
Chaos, I call upon thee, swear myself to thee! Let the fools
who stand before us be destroyed by the power you and I
possess!
GIGA SLAVE!!

 ha scritto una uguale (o simile) x win.
  getopt(3) appartiene allo standard POSIX ed opera solo su stringhe,
senza utilizzare nessuna caratteristica dipendente dal sistema: risulta,
dunque, tranquillamente portabile su qualsiasi piattaforma. Ti 
consiglio quindi di cercarne il sorgente ed accluderlo tranquillamente
al tuo progetto.
	Alla prossima,
		Marco

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

Salve,
sapete indicarmi dove posso trovare delle funzioni C che manipolano i
file .htaccess e .htpasswd per i permessi di accesso a pagine web.
Grazie mille per l'aiuto.
Giovanni
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG


Newsgroup: it.comp.lang.c
Titolo: Strana dichiarazione

Ciao a tutti, mi potreste dire cosa crea una dichiarazione di questo tipo:
typedef enum {
    STATUS_OK,
    STATUS_MEM_EXHAUSTED,
    STATUS_DUPLICATE_KEY,
    STATUS_KEY_NOT_FOUND
} statusEnum;
Grazie mille a tutti!
Enrico S.

} statusEnum;
E' una enumerazione.
Una variabile di tipo statusEnum puo' assumere i valori STATUS_OK,
STATUS_MEM_EXHAUSTED, ....
E' un modo alternativo di definire costanti e/o defines.
--
Andrea Laforgia (ICQ 87230455)
http://www.geocities.com/AndreaLaforgia
"ci sono tre tipi di persone nel mondo : quelli che
 sono bravi in matematica e quelli che non lo sono."

Grazie 1000!!!
Enrico S.
--
Webmaster della Pagina NON Ufficiale del SonyCRX100
SonyCRX120,  SonyCRX140E/S, SonyCRX100EX, HP8100
HP8200, HP9100 & HP9200
http://www.freeweb.org/computer/SonyCRX100/

Newsgroup: it.comp.lang.c
Titolo: #define

Salve a tutti e scusate la sicuramente banale richiesta di chiarimento.
 
Cosa significa quando dopo la #define compare solo un nome?
 
P.es #define TEST
 
Grazie dell'attenzione.


Vuol dire che TEST è stato definito :)
 
Suppongo però che tu voglia sapere a cosa serve. Uno degli
usi tipici è che dopo quella macro potrebbe comparire
qualcosa come:
 
#ifdef  TEST
   /* codice qui */
#endif
 
in questo caso, quella parte verrà compilata solo se TEST
è stato definito.
 
ciao
 
Apx.
 

 Apx.
 
 
Grazie della sollecita risposta.
 
Quindi, nel caso del tuo esempio, la definizione di "TEST" ha solo la funzione di appoggio alla compilazione condizionale (si dice cosi?) di una parte di codice?
 
P.S. Scusa ma credo di averti mandato qualcosa via mail per errore.
 
Ciao.

 per errore.
 
Se è il numero segreto del tuo conto alle Cayman va
benissimo e ti ringrazio :DDDD
 
ciao!
 
Apx.

Newsgroup: it.comp.lang.c
Titolo: Conversione Stringhe in numeri e viceversa in C

Salve, sono un appassionato di programmazione, e conosco il linguaggio 
Visual Basic.
Mi sto avvicinando al C dall'inizio, però mi sono bloccato su come 
trasformare un numero integer in stringa e viceversa.
In Vb si usa Val e Str, ma le equivalenti in C ??
Grazie per una vostra cortese risposta.
Alessandro Giovannelli
alegiov...@tiscalinet.it

]

 trasformare un numero integer in stringa e viceversa.


ecvt()   da stringa a double
A titolo di precisazione : tutte queste funzioni non sono standard.
--
Andrea Laforgia        (
andrea_...@bigfoot.com
)
Newsgroup: it.comp.lang.c
Titolo: Logo Manager 3.1 per Windows 95/98

Sei stufo di vedere sempre il solito logo durante il caricamento di Windows
o la solita insignificante scritta che ti avverte di spegnere il computer?
Allora scarica questa pratica utility, che ti permette di gestire i tuoi
loghi personalizzati, scegliendo in ogni momento quello che più ti aggrada.
Logo Manager può importare qualsiasi immagine, sia da disco, in formato
bitmap, gif o jpeg, che dagli appunti. E se non sei soddisfatto di
un'immagine, tramite un comodo menu di scelta rapida puoi richiamare
l'editor che preferisci per modificarla. Il box "Combinazioni", inoltre, ti
permette di salvare e poi richiamare con un semplice clic determinate
combinazioni dei tre loghi.
In più, con Logo Manager puoi modificare il logo del produttore e le
informazioni di supporto visualizzati nelle Proprietà del Sistema nel
Pannello di controllo.
URL per il download del file (solo 2,65 Mb!):
http://web.tiscalinet.it/GioSca/downloads/logomanager.zip
oppure
http://volftp.mondadori.com/i/dl.htm?/pub/pc/windows/win98/progs/desktop/logomanager.zip
Per maggiori informazioni:
- la scheda del programma su VOLftp:
http://volftp.mondadori.com/cgi/scheda?it/logomanager.zip
- la mia home page:
http://web.tiscalinet.it/giovanniscandurra
- la mia pagina su VOLftp
http://volftp.mondadori.com/italiani/scandurra/index.htm
Non avete immagini da utilizzare come loghi? Ne trovate alcune sulla mia
home page, oppure potete visitare il sito 
http://www.freethemes.com
 !

 URL per il download del file (solo 2,65 Mb!):
Solo? Mah...
EMG

 URL per il download del file (solo 2,65 Mb!):
Cosa?!?!? 2.65Mb per modificare, anzi neppure modificare, sostituire 3
bitmap?? Ma fammi il piacere!
--
 Ciao, Luca.
 Reply to 
luca....@tiscalinet.it

 Solo? Mah...
La stessa cosa ceh ha colpito :-) Ma ormai c'e' gente che se non scarica
il mega programmazzo da qualceh mega o meglio qualche decina di mega per
fare na cavolata mica e' contenta :-)
Ciao ... Dino

fare na cavolata mica e' contenta :-)
Ma dai, è un affarone! Sopratutto considerando che è così difficile cambiare
a mano i loghi di windows! Forse i 2,65 mb sono le istruzioni!
Ciao,
Zeppe


Tutti uguali...
Ciao,
Zeppe

Newsgroup: it.comp.lang.c
Titolo: Acchiappare eventi......

Qualcuno mi sa dire se esiste e quale e' una funzione per acchiappare un
evento come la pressione di un tasto in Unix?
In MS-DOS lo so fare, basta usare INPORT, con un compilatore Borland e'
tutto OK
Se poi, per curiosita' stavolta, qualcuno mi sa indirizzare per fare la
stessa cosa con una applicazione consolle in Windows9X sarei grato...
PS uso per WIN9X il compilatore Borland Builder
Ciao Ciao e grazie.
--
Posted from 
dipsf2.dsf.unina.it
 [143.225.204.2]
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 evento come la pressione di un tasto in Unix?
Dai un occhio su it.comp.os.linux.development: ho chiesto una cosa simile
nel post "Input da tastiera", ed ho ricevuto delle risposte interessanti
(ti avverto pero' che non c'e' praticamente nessuna somiglianza con le
relative procedure WinDOS...).
Alceste
Newsgroup: it.comp.lang.c
Titolo: Codici di escape ANSI

Dove posso trovare una descrizione delle sequenze di escape da utilizzare
con printf per poter creare testo colorato,muovere il cursore e quant'altro?
Le sequenze di escape sono indipendenti dal tipo di terminale?
Se creo un programma che ne fa uso è portabile da Linux a Dos o ad un altro Unix(solaris nella fattispecie)?
ciao
Gianluca
-- 
================================================================================
TO REPLY
CHANGE 
NOS...@technologist.com
 IN ingv at 
technologist.com
"...Unix, MS-DOS, and Windows NT (also known as the 
    Good, the Bad, and the Ugly)."                     (by Matt Welsh)

สวัสดีครับ 
Clus...@technologist.com
 (ClusterB) ^_^
@ Dove posso trovare una descrizione delle sequenze di escape da utilizzare
@ con printf per poter creare testo colorato,muovere il cursore e quant'altro?
Se hai un manuale DOS, nella descrizione di ansi.sys trovi anche le
sequenze supportate.
 
@ Le sequenze di escape sono indipendenti dal tipo di terminale?
Sono uno standard, se un terminale le supporta allora le puoi usare.
@ Se creo un programma che ne fa uso ่ portabile <snip> ?
E' portabile sui terminali che le supportano, indipendentemente dal S.O.
Puo' capitare che, per supportarle, occorra fare del lavoro in piu',
tipo mettere un comando "device=ansi.sys" del config.sys del DOS, per
esempio.
Andrea

 ha scritto nel messaggio
news:slrn8v26vo....@localhost.localdomain...


Newsgroup: it.comp.lang.c
Titolo: stdint.h in visual studio 2005?

lo standard ansi c99 prevede stdint.h e inttypes.h per poter definire
variabili che hanno una dimensione prefissata indipendentemente dal
compilatore e dalla macchina.
Questo a me fa molto comodo perche' devo scrivere un programma di
elaborazione numerica dei segnali e avere delle variabili di dimensione
fissa mi aiuta molto.
Non riesco a trovarlo sotto visual studio 2005. Googlando mi e' pure
venuto il dubbio che non esista. Me lo potete confermare? Oppure sapete
se c'e' qualcosa di simile?

stdint.h
http://www.dotnet247.com/247reference/msgs/50/251377.aspx

Newsgroup: it.comp.lang.c
Titolo: Aiuto per un programma

Devo riuscire ad avere degli input per realizzare il seguente
programma:
"Scrivere un programma ANSI C che, acquisita una espressione
aritmetica semplice, stampa a video una espressione aritmetica
semplice ottenuta da quella acquisita inserendo delle parentesi che
riflettono la precedenza e l'associatività degli operatori. Il
programma deve inoltre stampare a video il tipo della espressione
acquisita (assumere che le variabili che iniziano con una lettera tra
a ed l siano di tipo int, le altre di tipo double)."
Se riuscite a darmi qualche dritta ve ne sono grato=)

...

Al momento l'unico consiglio che posso darti è di essere un po più
specifico nella tua richiesta magari comincia col programma e dove ti
trovi nei problemi scrivi al NSG..
CIAO
Newsgroup: it.comp.lang.c
Titolo: Aiuto......scusate OT!!!

Salve,
Forse sono un po' OT ....!!!!
Quali sono le funzioni equivalenti a quelle Linux per le FIFO(named pipe)
Ad esempio in Linux scrivo mkfifo(...) open(...) read(...) ecc.
ma in windows quali sono e di quale libreria fanno parte????
grazie tantissimo!!!
Luciano

 
#include <io.h>
_open()
_read()
#include <windows.h>
CreateNamedPipe()
Per l'ultima non garantisco :-)
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Grazie millllllle!!!!
Luciano.
Newsgroup: it.comp.lang.c
Titolo: registro di sistema

Ciao a tutti,
sto facendo un semplicissimo programmino del tipo
#include <stdio.h>
main()
{
    ........
}
Per lavorare nel registro di sistema basta aggiungere all'inizio #include
<winreg.h> giusto?
Basta questo per avee a disposizione i metodi OpenRegKey ecc.
Ve lo chiedo perchè non funziona. Quando lo compilo con Borland mi apre il
file winreg.h
e mi dice che c'è un errore li dentro!!!!
Cosa vuol dire?
Gianni Ronco

<winreg.h> giusto?
No <windows.h>, se hai altre domande vai su it.comp.programmare.win32.
-- 
Marco Barisione (ICQ 84277092)

Fantastico!!!
Credevo fosse winreg.h perchè il mio MSDN dice così.....
grazie infinite
Gianni Ronco.
Newsgroup: it.comp.lang.c
Titolo: Struttura hostent

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <arpa/inet.h>
char ip[12],ipt[12];
struct hostent *he;
int main ( int argc, char *argv[])
{
system("clear");
/* gethostbyname ?una funzione che permette di trasformare il nome di
un host nel corrispondende IP */
if ((he=gethostbyname(argv[1])) == NULL)
{
herror("gethostbyname");
fprintf(stderr, "host sconosciuto");
exit(1);
}
printf("%d.",(*(*(*he).h_addr_list)));
(*(*he).h_addr_list)++;
printf("%d.",**(*he).h_addr_list);
(*(*he).h_addr_list)++;
printf("%d.",**(*he).h_addr_list);
(*(*he).h_addr_list)++;
printf("%d\n",**(*he).h_addr_list);
(*(*he).h_addr_list)++;
1. il mio obiettivo e' quello di leggere direttamente gli ottetti che
compongono
   il numero IP, che mi fornisce la funzione gethostbyname con la
struttura
   hostent.
   Essendo **h_addr_list un puntatore ad un puntatore le printf di
sopra mi
   permettono di leggere gli ottetti del numero ip, ma non capisco
perche'
   sulla struttura hostent, **h_addr_list risulta un puntatore a
caratteri
 
printf("hostname = %s\n\n",(*he).h_name);
2. se volessi leggere, anche, il nome dell'host contenuto nella
struttura
   hostent, quindi il campo *h_name, (puntatore a caratteri), non
dovrei usare
   l'istruzione seguente anzichè quella di sopra?
printf("hostname = %s\n\n",*(*he).h_name);
3. potrebbe essere che nella mia versione di linux il campo *h_name
non
   sia piu' un puntatore a caratteri ma semplicemente una stringa
contenuta
   nella struttura hostent? A cosa e' dovuto questo diverso
funzionamento dei
   puntatori?
Grazie mille 
      .
      .
      .
codice rimanente
      .
      .
      .
(*(*he).h_addr_list)--;(*(*he).h_addr_list)--;(*(*he).h_addr_list)--;(*(*he).h_addr_list)--;
sprintf(ip,"%d.",(**(*he).h_addr_list));
(*(*he).h_addr_list)++;
strcat(ipt,ip);
sprintf(ip,"%d.",(**(*he).h_addr_list));
(*(*he).h_addr_list)++;
strcat(ipt,ip);
sprintf(ip,"%d.",(**(*he).h_addr_list));
(*(*he).h_addr_list)++;
strcat(ipt,ip);
sprintf(ip,"%d",(**(*he).h_addr_list));
(*(*he).h_addr_list)++;
strcat(ipt,ip);
printf("ipt = %s\n\n",ipt);
printf("\n*** Fine *** \n\n");
exit(0);
}

 }
Sei OT, posta su, ad es, it.comp.os.linux.development
-- 
/**
  * 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: Un aiutino sulle funzioni...

Posso ritornare da una funzione un vettore(e non l'indirizzo di questi)?
Se si,come(un esempio sarebbe il massimo).Grazie ciao.             Dino.
--
Automatic posted from 
manc...@studenti.cised.unina.it
 [192.132.34.114]
via Mailgate Server - 
http://www.mailgate.org

...


...


Se si,come(un esempio sarebbe il massimo)
Cioe' in che senso ?
Dovresti sapere che un vettore in realta' e' un puntatore.
E comunque e' inconcepibile pensare ad una funzione che ritorni un
vettore (se con questo intendi il concetto comune di array del C) se
non come il suo indirizzo.
Andrea
------------------------------------------------
combatti anche tu il "nano scemo" :
http://www.geocities.com/Hollywood/Studio/6989
------------------------------------------------

Puoi inserire il vettore in una struttura. Quest'ultima puo' essere tornata
da una funzione.
Viceversa se il tuo e' un problema di vettore dinamico puoi allocare il
vettore dinamicamente e tornare il puntatore al chiamante che poi si
preoccupera' di liberare la memoria.
Ciao.
Antonio Donatiello

Newsgroup: it.comp.lang.c
Titolo: data odierna

come inserisco in una variabile la data di oggi ?
che strutture utilizza il C e come devo usarle ?


I'm not prejudiced, I hate everyone equally.

Newsgroup: it.comp.lang.c
Titolo: lint freeware

esiste qualche programma tipo lint, splint....che sia freeware?
grazie
V.

 esiste qualche programma tipo lint, splint....
http://www.splint.org
che sia freeware?
Problemi con la GPL?
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c
Titolo: client x IP address pubblico

Come posso ottenere il mio indirizzo IP pubblico con un programma C ?
So che esiste ddclient che permette di usare dyndns, ma è uno script in
perl, io lo vorrei fare in C, è possibile ?
Avete qualche link ?
TIA
-- H


Non dovrebbe essere difficile riscrivere il programma perl in C.
In ogni caso e` possibile, ma e` difficile dari suggerimenti se non 
spieghi in quale environment stai lavorando.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

 spieghi in quale environment stai lavorando.
Oops, scusa hai ragione.
Lavoro in Linux (debian con gcc)
Ho trovato esempi in perl ma è un linguaggio che non conosco.
Qualche link sarebbe molto utile :-)
ciauz

 Qualche link sarebbe molto utile :-)


 risposta.
la seconda che hai detto :-)

Newsgroup: it.comp.lang.c
Titolo: Turbo C

Salve, vorrei  sapere un paio di cose su questo compilatore: il turbo c può
fare anche programmi che girano sotto win?
Come si fa la parentesi graffa nel turbo C?
Va bene come compilatore o devo procurarmi uno migliore?

 wrote in message
5aNS7.9260$OP2.3...@news2.tin.it...


 wrote in message
5aNS7.9260$OP2.3...@news2.tin.it...

Newsgroup: it.comp.lang.c
Titolo: allocazione dinamica della memoria

anche io ho l'esame tra poco,ma non vi chiederò di risolvermi problemi
vari,a me servirebbe un bel manualone dove io possa capire l'uso dei vari
comandi per allocare la memoria dinamica...
Ho già il K&R ma non mi dice nulla,ne ho un'altro ma meno che zero(ho finito
i cartacei,un po' pochini?),per quello che riguarda l'online,ho visto il
ticky C ,ma mi ha un po' complicato la vita...e in più ho perso la
spiegazione all'universtà perchè stavo male!!!
Qualcuno mi sa dare qualche manuale online?????

Ho già il K&R ma non mi dice nulla
Stai scherzando vero ?
--
Andrea Laforgia - walkietalkie(at)
libero.it
#exclude <windows.h>

 ha scritto nel messaggio
news:3b34554d...@news.libero.it...


 Ho gia` il K&R ma non mi dice nulla
Come nulla?? C'e` addirittura un esempio di allocatore!
Guarda il capitolo 7.8.5 (Gestione della memoria), 8.7 (Esempio - un
allocatore di memoria), appendice B5 (stdlib.h).
Attenzione che viene detto di fare un cast sul valore di ritorno di
malloc e calloc. In realta` non bisogna farlo.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Tentare e` il primo passo verso il fallimento.
Homer J. Simpson

 ha scritto nel messaggio
news:9gfr1v$3gf$3...@dreamland.darkstar.net...


 ha scritto nel messaggio
news:OJ6X6.9356$nG2.1...@news1.tin.it...


 ha scritto nel messaggio
news:9gkvbk$rs6$1...@nreadB.inwind.it...


io non ho trovato nulla a parte due righe di descrizione dei comandi.
Quali comandi ? 
Il C non ha "comandi" per l'allocazione dinamica, ha solo
funzioni.  malloc() e free() sono descritte a pag. 336 e la
spiegazione e' sufficiente a farti capire come si usano.


Non si fa? E per quale motivo si dovrebbe-non dovrebbe fare?
Leggi i vecchi messaggi e le FAQ.
Non e' bello ripetere 1000 volte le stesse cose.


 ha scritto nel messaggio
news:3b30dc03...@news.libero.it...

Newsgroup: it.comp.lang.c
Titolo: Funzione che restituisce tipi dati diversi

Salve,
dovrei creare per esigenze una funzione che mi restituisca tipi dato
diversi;
I tipi dato che deve restituire la funzione sono:
  int
  unsigned long
  unsigned short
  unsigned char
Si può fare? se si come?
Grazie.

 Si puň fare? se si come?
Versione 1:
#define TIPO_INT 0
#define TIPO_ULONG 1
#define TIPO_USHORT 2
#define TIPO_UCHAR 3
void funzione (char chTipoDaRitornare, void *pvoid) {
 switch (chTipoDaRitornare) {
 case TIPO_INT:
  *((int *)pvoid) = 42;
  break;
 case TIPO_ULONG:
  *((unsigned long *)pvoid) = 42;
  break;
 case TIPO_USHORT:
  *((unsigned short *)pvoid) = 42;
  break;
 case TIPO_UCHAR:
  *((unsigned char *)pvoid) = 42;
  break;
 }
}
int main ()
{
 int i;
 unsigned char uch;
 unsigned long ul;
 funzione (TIPO_INT,&i);
 funzione (TIPO_UCHAR,&uch);
 funzione (TIPO_ULONG,&ul);
}
Versione 2: impacchetti il tutto in una struct che ha il tipo come primo 
parametro e una union come secondo parametro. Leggermente piů elegante, ma 
non sostanzialmente diverso.
-- 
Costantino Grana 

 tipi dato diversi;
Sovraccaricare la funzione? 
Usare una struct?
Ricorrere pesantemente ai cast?

 Ricorrere pesantemente ai cast?

 tipi dato diversi;
Sovraccaricare la funzione? 
Usare una union? :P
Ricorrere pesantemente ai cast?


Ciao
-- 
Cybertoldo
Per rispondermi via email, sostituisci moc.liamg con 
gmail.com

 Costantino Grana
Avevo postato, ma sicuramente non è andato a buon fine, cmq
riscrivo.....
Ho capito l'esempio ma non è il mio caso, in quanto io non conosco il
tipo dato del valore, in quanto lo ricava la funzione:
la mia attuale funzione è così:
static void getFiled(struct info *infonode, BYTE *data, char *iname,
char inum)
{
....
}
nella funzione determino il valore verificando anche se esiste e dò un
output valore/tipo dato;
ho aggiunto una static char con i nomi dei vari tipo dato, la forma
dell'output è:
Type: <nome tipo dato> Value: <valore ricavato>
BYTE è definito così #define BYTE unsigned char
ora dovevo trasformare la funzione da static void ad una funzione che
mi permetta di usare return,
cmq non sò se sia possibile una cosa del genere, come in altri
linguaggi che posso omettere il
returntype, scrivendo la funzione così:
getField(struct.... .....)
{
  return valore;
}
Famite sapere. Grazie.

 }
...per questo motivo penso che non ti serva: usi il C ma stai 
'ragionando' con un "altro linguaggio" :)


Newsgroup: it.comp.lang.c
Titolo: aiuto matrici e malloc

ragazzi chi mi fa capire con un esempio come cacchio si usa il malloc nel
realizzzare puntatori a matrici???
il prof ha fatto una lezioni cosě lampo e non ci ho capito molto!!!!! GRAZIE
--
{Skonvols2k}
skonv...@iol.it


The trouble with being poor is that it takes up all your time.

vedi un po il post qua sotto "prodotto matriceXmatrice (lunghetto).
Dome

GRAZIE adesso me lo studio!!!
--
--
Marco Sommella {Skonvols2k}
somme...@inwind.it
skonv...@iol.it
"Antonio barbone" <bar...@raffaello.home> ha scritto nel messaggio
news:slrn9i1g8d...@barbone.raffaello.home...

Newsgroup: it.comp.lang.c
Titolo: grafo delle invocazioni

Ciao a tutti,
puo' sembrarvi una richiesta strana, ma sto cercando un modo rapido per 
ottenere un grafo delle invocazioni delle funzioni in un programma. Mi 
spiego meglio. Dato un programma vorei sapere per ogni funzione le 
funzioni che questa invoca.
Lo scopo e' quello di ottenere una tabella con un numero di righe uguale 
al numero di colonne uguale al numero di funzioni in un programma. Il 
generico elemento di riga i, colonna j vale 1 se la funzione 'i' invoca 
la funzione 'j' altrimenti vale 0.
Mi suggerite qualcosa.
Grazie in anticipo,
Maurizio

 funzioni che questa invoca.
Prova l'ottimo CodeViz:
http://www.csn.ul.ie/~mel/projects/codeviz/
Marco

Newsgroup: it.comp.lang.c
Titolo: chiarimenti su  "int main(void)

In alcuni esempi trovo:
 
 
int main(void)
{
   printf("ciao");
   return 0;
}
 
e in altri esempi trovo;
 
int main()
{
   printf("ciao");
   return 0;
}
 
 
Il void, all'interno della parentesi, ï¿œ corretto metterlo oppure no?
Grazie
nero23
 

 
 
Sì, motivi storici a parte, di solito conviene metterlo per sottolineare
il fatto che la funzione non prende alcun parametro.
 
Ciao!

Newsgroup: it.comp.lang.c
Titolo: chi quadro e correlazione lineare

ho disperatamente bisogo di alcuni programmi in c ed in fortran:
Calcolo di
chi quadro
media e deviazione standard
vi prego, aiutatemi, li debbo consegnare lunedi!!



Ehm..ma lavorarci prima no ?
Augusto Pucci
Webmaster di Prospektiva On-line
http://www.prospektiva.it

Newsgroup: it.comp.lang.c
Titolo: problema con le variabili globali

salute a tutti,
programmo in C sotto linux, e il mio C e' standard (ie, niente grafica o
altre cose pesantemente machine-dependent)
compilo e linko il mio programma e come lo lancio va immediatamente in
segmentation violation.
esploro col debugger e scopro che qualsiasi riferimento a variabili
GLOBALI lo manda in pappa. ispezionando gli indirizzi, mi pare di capire
che le globali vengano in qualche modo allocate in una pagina non
riservata al programma. se chiedo la stampa dei loro valori in gdb,
ottengo un messagigo "cannot access memory at address..." mentre tutto
ok se chiedo la stampa di variabili locali alla procedura corrente.
mai sentito di un problema del genere?
(non e' legato alla macchina o all'installazione, dal momento che altro
codice funziona benissimo. volendo, posso postare altri dettagli sugli
switch di compilazione)
grazie a tutti
-- 
abbracciami ed ubriacami
di ironia e sensualita'

salute a tutti,
mi faccio un followup poiche' ho parzialmente risolto il problema:
il problema accade quando alloco troppa roba come globale. se riduco
progressivamente le variabili globali, prima o poi il programma smette
di dare l'anomalia e procede normalmente.
ancora: qualcuno sa di che problema si tratta?
grazie


 di dare l'anomalia e procede normalmente.
Fa piacere che tu abbia scovato il bug, ma ricorda: limitare il più
possibile (io direi pure eliminare!) le variabili globali renderà più
comprensibile, riusabile, manutenibile e esente da frequenti problemi il tuo
codice.
Ciao
Daniele.
Newsgroup: it.comp.lang.c
Titolo: Aggiornare

Vi spiego il mio problema:
Usando Mathematica posso fare dei programmini che mi scrivono ciclicamente
su un file un numero
(uno solo); ad esempio potrei fare un programmino che mi trova numeri primi:
questo programmino funzionerebbe così:
trova il numero 2 e poi me lo scrive sul file primo.txt, poi trova il numero
3 e
mi riscrive il file col numero 3, poi mi trova 5 ecc... Quindi, se vado ad
aprire il
file primo.txt in un qualunque momento, visualizzo il numero primo più
grande
che il mio programmino mi ha trovato.
Ma supponiamo che *mentre* il file primo.txt è
aperto e mi visualizza (ad esempio) il numero 3, il mio programmino trova il
numero 5
e quindi Mathematica scrive 5 sul file primo.txt ; dal momento che il file
primo.txt
è aperto (perché, ad esempio, io lo sto visualizzando col blocco note)
quello che vedrò scritto sul file primo.txt sarà 3, anche se il mio
programmino ha trovato il numero 5.
Ora la mia domanda è: conoscete qualche modo per far si che io possa (senza
fare niente manualmente) vedere sempre e solo il numero primo più grande che
il mio programmino mi ha trovato?
Un idea che ho avuto e far si che mi si apra una finestra e che in questa
finestra, che dovrà rimanere sempre aperta, venga sempre visualizzato il
contenuto aggiornato del file primo.txt (ossia venga sempre visualizzato il
numero primo più grande che Mathematica mi ha trovato); un possibile modo
per concretizzare ciò potrebbe essere creare un file primo.bat con queste
istruzioni
:start
more primo.txt
echo off
goto start
ma i difetti di questo metodo sono:
1) uso eccessivo della cpu, che invece dev'essere impegnata principalmente
per trovare numeri primi
2) l'output non cambia solo quando è cambiato il file primo.txt, ma cambia
in continuazione
Magari un modo per migliorare questo metodo è far fare il ciclo che ho
scritto sopra solo ogni tot di tempo, ma non conosco i comandi per fare
questo... voi li conoscete?
Grazie e ciao 

 Grazie e ciao 
Prego.
Appena hai due secondi, comunque, mi spieghi cosa c'entra Mathematica
(che, peraltro, è un software proprietario che io sappia) con il
linguaggio C.
Saluti,
David
-- 
Linux Registered User #334216
Get FireFox! >> 
http://www.spreadfirefox.com/?q=affiliates&id=48183&t=1
Staff >> 
http://www.debianizzati.org
 <<
Newsgroup: it.comp.lang.c
Titolo: [OT?] Metaprogrammazione

Salve,
mi è capitato talvolta di sentir parlare di "metaprogrammazione" senza
mai capire realmente di cosa si tratta.
Qualcuno sa dirmi 2 parole a riguardo e soprattutto sa indicarmi deisiti
da cui apprenderne
1)le basi
2)gli scopi
3)le tecniche?
Grazie

 mai capire realmente di cosa si tratta.
Scusa, ma sei sicuro che non sia metaparadigma?
Spesso nel parlare dei vari stili come paradigma procedurale(imperativo),
funzionale, logico.. si usa programmazione imperativa, programmazione
funzionale ... . Quindi non mi supirei se qualcuno avesse forzato il termine
per indicare anche i metaparadigmi. (E' solo un'ipotesi perché una cosa del
genere non l'avevo mai sentita ma, come si sa gli stili sono troppi).


 Scusa, ma sei sicuro che non sia metaparadigma?
Io ho letto qualcosa riguardante la metaprogrammazione template, una
tecnica con la quale si può utilizzare l'interprete presente in ogni
compilatore C++ che supporta i template per scrivere una sorta di
"programmi" che vengono eseguiti in compilazione invece che in
esecuzione.
EMG

Lo scripting è la stessa cosa?


 Lo scripting è la stessa cosa?
No, direi proprio di no. Per lo scripting serve un semplice interprete.
EMG

Newsgroup: it.comp.lang.c
Titolo: [OT]programma tracciatore

Ragazzi, mi servirebbe un programma che tracci le attivita` del
calcolatore mentre sta partendo un altro programma sdotto WIN95, dato che
uno dei miei programmi fa finta di partire ma non produce alcun output,
neanche errori, grazie, ciao.
_______________________________________________________________________________
Francesco Buffa
Via Rosellini 6                
56124 Pisa ITALIA              
+39-050-567770
 
E-mail: 
frances...@studenti.ing.unipi.it
______________________________________________________________________________

calcolatore mentre sta partendo un altro programma sdotto WIN95, dato che
www.sysinternals.com
 ha vari programmi gratuiti e molto
interessanti disponibili per download, sia per Win95, sia
per Win/NT, fra cui (in entrambi gli ambienti) tracciatori
di attivita` di filesystem, che potrebbero esserti utili.
Alex
Newsgroup: it.comp.lang.c
Titolo: Elementi in Array

Ciao,
per sapere quanti sono gli elementi in un array,
io uso la seguente macro
#define ArrayLength(Array) sizeof Array / sizeof Array[0]
esiste, invece, qualche funzione negli headers ?
Grazie.

 wrote in message
news:8m68b.312443$
lK4.9...@twister1.libero.it

Per quanto mi risulta, no. Cosa ha di tanto tragico questo metodo?
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

> > per sapere quanti sono gli elementi in un array,
scusa.. ma l'array lo dichiari tu, lo sai gi' prima quanti elementi ha... no
?


Si, pero' a volte si vuole 'generalizzare' la cosa. Esempio:
char pippo[20];
[...sorgente molto lungo...]
for (i=0; i<ArrayLength(pippo); i++)
Non e' pulito cosi ?
Comunque suggerirei alcune parentesi in piu':
#define ArrayLength(Array) (sizeof (Array) / sizeof ((Array)[0]))
Giusto per evitare effetti ... collaterali !

 Non e' pulito cosi ?
è anche questione di gusti.. io preferisco delle define ;)
cmq ho capit il discorso

 cmq ho capit il discorso
Tra l'altro l'esempio che ho fatto e' abbastanza ... stupido (era ora di 
pranzo ed avevo fretta ;) ).
Diciamo che in quel caso, essendo solo un array di char, bastava fare 
sizeof (pippo).
La macro ArrayLength che ha fatto Alessio e' ottima quando si hanno 
degli array multidimensionali:
int pippo[20][2];
for (i=0; i<ArrayLength(pippo); i++)
In questo caso e' davvero molto utile !!!

 wrote in message
news:3F61D763...@supereva.it...


> Pero' se l'array e' allocato dinamicamente non funziona giusto?
giusto

> Per quanto mi risulta, no. Cosa ha di tanto tragico questo metodo?
Nulla, per cultura.


 Pero' se l'array e' allocato dinamicamente non funziona giusto?
Calma, funziona SEMPRE sugli array... il problema e' che un array decate
sempre a puntatore a meno di 3 casi: quando e' argomento di sizeof, quando
e' argomento di & (operatore address-of) e quando e' un literal string di
inizializzazione di un vettore (char v[] = "pippo").
A questo punto il problema originale diventa: come posso conoscere la
dimensione di una sequenza referenziata da un puntatore? A meno di non
incapsulare tutto in una struttura dati e mantenerne la dimensione/fornire
un metodo per calcolarla NON posso.
In qualunque linguaggio di programmazione esistente, se potete farlo
significa che c'e' gia' un oggetto che incapsula tutto nel modo che ho
appena descritto, ma implementato dal linguaggio e non dal programmatore.
-- 
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: Passaggio di matrice 2d ad una funzione e puntatori...

Buongiorno,
il problema che vado a sottoporvi probabilmente sarà banale per molti.
In semplici programmi a scopo didattico avevo la necessità di
inizializzare delle matrici bidimensionali di interi, ponendo ogni
elemento ad uno stesso valore.
Ho quindi scritto il seguente codice (che funziona correttamente):
#include <stdio.h>
#define SIZE 10
void
init_2d_array (int [SIZE][SIZE], int);
int
main (void)
{
	int a[SIZE][SIZE], c, r;
	init_2d_array (a, SIZE, SIZE, 0);
	for (r = 0; r < SIZE; r++) {
		for (c = 0; c < SIZE; c++)
			printf ("%d ", a[r][c]);
		printf ("\n");
	}
	return 0;
}
void
init_2d_array (int a[SIZE][SIZE], int v)
{
	int c, r;
	for (r = 0; r < SIZE; r++) {
		for (c = 0; c < SIZE; c++)
			a[r][c] = v;
	return;
}
In questo modo, tuttavia, la funzione di inizializzazione non è
totalmente "universale" nel senso che è limitata a matrici quadrate di
dimensioni SIZE. Per superare questo problema ho quindi pensato a
riscrivere la funzione di inizializzazione nel seguente modo:
void
init_2d_array (int **a, int nr, int nc, int v)
{
	int c, r;
	for (r = 0; r < nr; r++) {
		for (c = 0; c < nc; c++)
			a[r][c] = v;
	return;
}
Passando a quest'ultima una matrice allocata staticamente, tuttavia,
il compilatore mi restituisce il seguente warning:
prova.c:20: warning: passing arg 1 of 'init_2d_array' from
incompatible type
Il programma, inoltre, va immediatamente in "Segmentation Fault".
Passando alla funzione una matrice allocata dinamicamente, invece,
essa funziona correttamente. La mia domanda è semplice: in cosa sto
sbagliando?
Grazie a tutti per l'attenzione,
Stefano B.

 La mia domanda è semplice: in cosa sto sbagliando?
Stai confondendo array e puntatori. Passando un array di int ad una 
funzione, questo in realta' viene passato come un puntatore ad int. 
Questo e' il motivo per cui per gli array (monodimensionali) *non* e' 
necessario specificare nell'intestazione della funzione la dimensione 
dell'array stesso.
Questa trasformazione non e' pero' ricorsiva. Ovvero un array 
bidimensionale non viene passato come un puntatore a puntatore a int, ma 
come un puntatore ad un array di int di una certa dimensione.
Quindi, o specifichi la seconda dimensione (e tutte quelle successive 
nel caso di array con piu' di 2 dimensioni), rendendo pero' la funzione 
meno generica, o allochi dinamicamente la memoria (cosa che hai gia' 
fatto con successo).
Newsgroup: it.comp.lang.c
Titolo: do while strano

Salve a tutti.
Stavo spulciando i sorgenti di GnuPG, nello specifico sha1.c
A un certo punto questo fa riferimento a wipememory, che ho notato 
essere un #declare in un modulo.
In pratica è una cosa del tipo:
#define wipememory(_ptr,_len) wipememory2(_ptr,0,_len)
che quindi richiama wipememory2, che è unq cosa tipo:
#define wipememory2(_ptr,_set,_len) do {...istruzioni...} while(0)
In pratica quel do while(0) mi è curioso: perchè farlo? Il ciclo sarà 
eseguito una sola volta, non si poteva usare direttamente 
{...istruzioni...} senza quel do while?
-- 
Nella vita una sola cosa è certa: se la storia ci ha insegnato qualcosa, 
è che si può uccidere chiunque.
(Michael Corleone)
Posted from X-Privat Free NNTP server - 
www.x-privat.org

 {...istruzioni...} senza quel do while?
E' buffo come alcuni argomenti insoliti vengano trattati molte volte
nell'arco di qualche giorno, poi piu' per mesi e mesi e poi di nuovo
parecchie volte....
E' buffo anche come alcuni frequentatori di questo NG non si ricordino
messaggi di 10 giorni fa:
http://groups.google.it/groups?hl=it&lr=&ie=UTF-8&selm=K_eJb.30900%24VW.1450407%40news3.tin.it
prova a vedere se questo messaggio qua sopra ti e' utile....
Tommy

Newsgroup: it.comp.lang.c
Titolo: inline VS static inline ?

Non ho ancora chiara la differenza, soprattutto dopo quello che mi e'
successo oggi: mi hanno passato un programma, di cui le righe "incriminate"
sono:
inline int RoundUp(size_t sz, int mult)
{
   return (sz + mult-1) & ~(mult-1);
}
void *mymalloc(size_t size)
{
   int blocksize = RoundUp(size + sizeof(headerT), ALIGNMENT);
   ...
}
(in quest'ordine, e RoundUp non e' definita nel .h : serve solo in questo
modulo). Compilato su un pc con una Ubuntu e gcc 4.1.2 , compila e va. Sul
mio pc di casa, con una Debian e gcc 4.3.2, mi da' l'errore:
" In function `mymalloc': undefined reference to `RoundUp' ".
Se cambio la definizione di RoundUp con "static inline ...", compila e va.
Perche'?
Thx,
Pleg

 Perche'?
Non e' che per caso hai cambiato la definizione in "extern inline ..."
prima?
gcc non ha obbligo di generare codice per funzioni dichiarate extern
inline, per cui devi poi avere almeno una definizione (non inline)
presente.
Questo link potrebbe essere utile:
http://www.greenend.org.uk/rjk/2003/03/inline.html

 prima?
Mhh... non io...
Pleg
Newsgroup: it.comp.lang.c
Titolo: Doc/Libri x sviluppare DRIVER

Vorrei imparare a sviluppare DRIVER in C/C++.
Sapete indicarmi un buon libro o risorsa?
Grazie
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Ciao Jack

 Ciao Jack
mmmh........ Da Linuxiano devo dirti che mi serve per Windows XP
sfruttando Visual Studio 6.0.
Se magari ti viene in mente altro dopo questa precisazione, accetto ancora
altro...
Ora vedo il link che mi indicavi prima
Ciao



non mi porta ad una pagina effettivamente, in quanto mi apre la pagina
iniziale... 
www.google.it
Grazie lo stesso
ciaooooo


   
Allora sono driver WDM, ma ti serve il DDK Microsoft.
VS non serve , si compila tutto a linea di comando (si puo' integrare nell'
ide, ma e' una operazione - secondo me- inutile).
Questo se necessiti di vero driver che gira nello spazio kernel, altrimenti
puoi  sviluppare un driver  in user mode appoggiandoti  a  servizi gia' 
fatti
nel kernel.
In questo caso puoi scrivere una applicazione windows usando VS6.
Un libro che mi viene in mente è "Writing Windows WDM device drivers", 
di Chris cant,
ma ce ne sono molti di piu' aggiornati...
brix
 

Dimenticavo, esempio:
http://www.codeproject.com/KB/system/WDM_Driver_development.aspx
Brix

brix99luftballons ha scritto:

GRAZIE


 Ciao Jack
GRAZIE


 Brix
Grande Brix, grazie.
Spero di diventare anch'io un'esperto per aiutare qualcuno un giorno.
Ciao


 Grazie
Ovviamente mi occorrerebbe anche qualche risorsa specifica per API.
Sapreste indicarmi qualche esempio didattico di costruzione di DRIVER ,
API ecc.
Grazie a tutti gli uomini di buon cuore


 Grazie
Quale programma usare per costruire l'uml?
Ciao


Quale programma usare per costruire l'uml?
Vedi qua:
http://www.tigris.org/servlets/ProjectList
Prova ArgoUML....
bye
brix

 brix


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

Vorrei iniziare a programmare in C.
Chi potrebbe indicarmi un buon testo (possibilmente in italiano) e un
buon compilatore (possibilmente sotto windows) ?
Grazie anticipate
sstefano

buon compilatore (possibilmente sotto windows) ?
Come gia` risposto da altri in altro thread, il testo
migliore resta il Kernighan e Ritchie (esiste anche
in traduzione italiana).
Un buon compilatore gratuito sotto Windows e` il
gcc nelle due versioni gnuwin32 e mingw32 -- la
prima e` piu` grossa e onerosa, ma anche piu`
ricca, la seconda piu` snella ma piu` povera (non
si porta dietro tutti i tools Unix di cui la prima e`
cosi` ben dotata).  Ti suggerirei caldamente di
non scaricarti dalla rete le molte decine di megabyte
necessarie, ma cercare un qualche numero recente
di IoProgrammo, Dev, o simili riviste-con-CDROM
che tendono a riportarli abbastanza spesso (anche
se non e` l'ultimissima versione non importa, tanto il
C e` molto stabile, e` solo nel lato C++, che questi
ambienti pure includono, che c'e` gran movimento).
Alex

Grazie mille,
ho trovato gnuwin sul cd-rom di Dev e mi sto procurando il libro.
sstefano
Newsgroup: it.comp.lang.c
Titolo: INTELLIGENZA ARTIFICIALE IN C

Qualcuno e' interessato a collaborare con un programma di intelligenza
artificiale scritto in C ?
Il tutto dovrebbe essere sviluppato in moduli diversi...in modo che
l'IA possa avere "competenze" in campi diversi...e soprattutto
organizzando le parole che conosce in aree semantiche... A qualcuno
interesserebbe sviluppare alcuni di questi moduli ?
Cioe' anche una parte sulla coltivazione delle rape selvbatiche
potrebbe essere interessante...se a qualcuno interessa gli mandio le
specifiche del problema.

Manda.
Se trovo il tempo ti dň una mano piů che volentieri
Ciao. Roberto

Fico! Manda manda :-)
 Ciao, Luca.
 Reply to 
luca....@tiscalinet.it

Fico! Manda manda :-)
Bye
NoBody

Newsgroup: it.comp.lang.c
Titolo: sommare sottomatrice

salve ragazzi.
ho un problema:
La parte Client manda al Server delle coordinate per indicare quella
sottomatrice di cui vuole la somma di tutti gli elementi.
Vi facci un esempio:
Io Server ho una matrice di 40x40 (interi) e mi arriva una richesta di un
Cliente che vuole restituita la somma della sottomatrice di coordinate 5*9.
La mia idea era quella di impostare 4 coordinate, una X che indica
l'ascissa, la quale, incrementata di 1(in questo caso x) indica all'indice
da dove incominciare a contare; lo stesso per le colonne, una Y grande
p.s.ho allegato la figura.
Il prolema mio e chč non riesco a far comunicare il cliente con server in
modo esatto e non capisco se il problema sta nell'algoritmo di comunicazione
o in quello con cui faccio la SOMMA.
Spero di essere stato il piů chiaro possibile.
Grazie!


Ora pensa un attimo: noi come facciamo a capire dove sta il problema? 
non abbiamo visto una riga di codice che usi, hai spiegato quello che 
vuoi fare neanche in modo tanto chiaro... e non ho visto figure allegate 
(forse perche', spesso, sui newsgroup gli allegati vengono tagliati via).
Anyway, ricorda che il C standard (argomento di questo NG) non tratta di 
socket e similia - per quello ti devi rivolgere a newsgroup specifici 
del tuo SO (it.comp.programmare.win32 o it.comp.os.linux.development).
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://www.cs.unibo.it/~mbellett
Linux registered user 299762 @ Linux registered machine 213003
Newsgroup: it.comp.lang.c
Titolo: includere 'get_current_dir_name'

Salve a tutti,
premetto che lavoro in Linux; per conoscere la directory corrente ho provato
ad utilizzare la funzione "get_current_dir_name", che ha il prototipo in
unistd.h. Al momento della compilazione perņ ho due warning:
implicit declaration of function 'get_current_dir_name'
assignment makes pointer from integer without a cast
Il prototipo č char *get_current_dir_name(void), e assegno la funzione ad un
char* (quindi non mi spiego il secondo warning!!)
Come posso evitare questi warning? cosa devo includere nel sorgente?
Ho visto che la funzione č contenuta nel file libc.so.5 in
/usr/i486-linux/lib/ o in /usr/lib/libc.a, che sono librerie condivise, ma
come posso utilizzarle?
Grazie per una risposta,
Marco


The majority of the stupid is invincible and guaranteed for all time.
The terror of their tyranny, however, is alleviated by their lack of
consistency.
                -- Albert Einstein

 warning:
Non e' che hai scritto 
#include "unistd.h"
invece di
#include <unistd.h>
?
se e' cosi', prima dovrebbe dirti "could not open include file..."

 warning:
Non e' che hai scritto
#include "unistd.h"
invece di
#include <unistd.h>
?
se e' cosi', prima dovrebbe dirti "could not open include file..."
No, ho scritto #include <unistd.h> e infatti non mi dą quell'errore