mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: Altra domanda (per voi) banale

Vi volevo chiedere solo un paio di cosette. Come mai questo programma non ne
vuole sapere di funzionare? Subito dopo aver deciso il valore della
lunghezza del lato, mi fà vedere la richiesta di immettere il simbolo, e
subito esce dal programma.
Altra cosa. Come mai, compilandolo, il compilatore mi riporta il msg di
errore "warning: passing arg 1 of `printf' makes pointer from integer
without a cast"?
Grazie a tutti
Daniele
/* Esercizio 5.20 */
#include <stdio.h>
int disegna_quadrato (int, char);
int main()
{
int lato;
char simbolo;
printf ("Lunghezza del lato: ");
scanf ("%d", &lato);
printf ("Simbolo: ");
scanf ("%c", &simbolo);
printf (disegna_quadrato(lato, simbolo));
return 0;
}
int disegna_quadrato (int lato, char simbolo)
{
int cont1, cont2;
for (cont1 = 1; cont1 <= lato; cont1++)   {
   for (cont2 = 1; cont2 <= lato; cont2++) {
   printf ("%c", simbolo); }
printf ("\n"); }
return 0;
}

 
devi mettere un system("PAUSE") oppure un getchar() alla fine del programma
-- 
Yum! E' anche meglio se usate la crema di formaggio invece del tofu. E
zucchero. Un sacco di zucchero. E uova e burro: non dimenticate il burro.
Jeffrey Zeldman - Designing with web standards

 devi mettere un system("PAUSE") oppure un getchar() alla fine del
programma
Perfetto, così funziona alla grande. Ho solo messo un %c invece del %d nel
printf.
Grazie mille!
Daniele

 Daniele
Ciao
Maticù
Newsgroup: it.comp.lang.c
Titolo: Segmentation Fault

Salve e tutti,
da poco mi sn avvicinato al mondo del C e mi trovo subito in
difficoltà.
Ho scritto, seguendo alcuni esempi una banalità di programmino:
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdio.h>
#include <stdlib.h>
//#include <string.h>
char *string;
int main(int argc, char *argv[])
{
string = "Rosso";
printf(string);
printf("\n %c \n",*(string+3));
*(string+3) = 'p';
printf("%s\n",string);
return EXIT_SUCCESS;
}
Però quando lo compilo e lo eseguo ottengo in uscita:
Rosso
s
Segmentation Fault
Da cosa dipende?
Grazie


dipende dal fatto che char *string è costante.
usa char string[] invece.
http://www.eskimo.com/~scs/C-faq/q1.32.html
ciao.

Quando dichiari string come char * non allochi memoria per la
"stringa", ma per un puntatore a carattere.
Per allocare staticamente una stringa puoi fare:
char stringa[MAXLEN]; //MAXLEN determina la lunghezza massima della
stringa
strcpy(stringa,"Rosso");
[...]
Per allocarla dinamicamente:
char * stringa = NULL;
stringa = malloc(MAXLEN * sizeof(char));
strcpy(stringa,"Rosso");
[...]
Credo che per iniziare sia meglio la prima ;-)
Ciao

 
Esiste anche questo modo:
char stringa[]="Rosso";
cosi' non ti devi preoccupare di inserire la lunghezza dell'array e la 
stringa rimane modificabile.
-- 
Devaraja (Xdevaraja87^gmail^c0mX)
Linux Registerd User #338167
http://counter.li.org

Per "statica" intendevo a tempo di compilazione (in contrapposizione a
dinamica a tempo di esecuzione). "Static" è un'altra cosa!
Ciao

 
Si, avevo capito, ma di solito con allocazione statica si intende 
proprio quella che si fa con static. Comunque non volevo dire che la tua 
risposta fosse sbagliata.


Grazie dell'aiuto,
mi è stato davvero utile!
Ricapitolando, per assegnare a una variabile una stringa devo passare
dalla funzione strcpy oppure usare la forma:
char stringa[]="Rosso";
Giusto?
Grazie ancora!
QQ7 ha scritto:

Newsgroup: it.comp.lang.c
Titolo: Richiesta delucidazioni

Salve ragazzi, sono nuovo e sono qui per porvi il seguente quesito:
esiste un compilatore c che usa esclusivamente chiamate a interrupt di BIOS?
Mi spiego meglio; mi sto accingendo a scrivere un sistema oparativo (molto
rudimentale ma didattico) e non vorrei usare solo assembly, altrimenti mi
raccattate col cucchiaino dopo tre giorni di programmazione... =)
Potreste dare una mano ad un pazzo inesperto?
Grazie!
Focala



Un sistema operativo che sfrutta la modalita' protetta ?
Allora dimenticati gli interrupt BIOS, non puoi utilizzarli.
Se invece sfrutti la modalita' reale (e significa che il tuo s.o. e'
VERAMENTE didattico) allora puoi scrivere tutte le funzioni basilari
"wrappando" gli interrupt BIOS.  Devi trovare un compilatore (come
quelli Borland) che ti consenta di inserire codice asm e di produrre
compilati binari in formato puro (tipo i vecchi .COM del DOS per
intenderci).


la pazzia é fonte di lucidità .... non sei l'unico che sta lavorando a
un sistema operativo x pc.... sai ?
credo che in questo momento almeno altri 10.000 pazzi come te
nel mondo staranno scrivendo il loro sistema operativo!
tra quei 10.000 pazzi ci sto pure io! e lo sto facendo esclusivamente
in assembly, sennò che motivo vi sarebbe di essere folli ?
x quanto concerne la tua domanda..... non esiste nessun s.o.
che utilizza solo chiamate a interrupt di bios, l'unica soluzione
che hai é riscriverti le librerie che ti servono da 0....
cerca anche il cm32, un compilatore C che genera listati assembler
x il dasm32, ma cmq sto compilatore c genera codice a 32bit
senza nessun interfacciamento all'hardware!
ciao
cod

in assembly, sennò che motivo vi sarebbe di essere folli ?
=)
Che bello, eheh.....
Grazie della conferma che temevo mi fosse data.
Ciao e buon lavoro/fortuna/pazzia
=)
Focala

intenderci).
il NASM li supporta. E credo sia un po' meglio di certi vecchi, gloriosi 
pezzi da museo :) (sě, č solo un assemblatore. Ma tutti i compilatori di  
questa terra dovrebbero essere in grado di produrre assembly come 
output)
Newsgroup: it.comp.lang.c
Titolo: Help su OFFSET

Sto scrivendo un programma per modificare una voce del RAS PhoneBook di
Windows NT e più precisamente per aggiungere una lista di numeri telefonici
alternativi.
Utilizzo le Win32 API e cioè RasGetEntryProperties() e
RasSetEntryProperties().
Entrambe queste funzioni utilizzano la struttura RASENTRY il cui membro
"dwAlternateOffset" contiene l'offset in byte, rispetto all'inizio della
struttura, dove inizia un array di stringhe contenente i numeri alternativi.
Con il poco che conosco non so come ad accedere a tali stringhe ??
Ho provato con il codice seguente ma non riesco.
Riuscite ad aiutarmi ?
Grazie in anticipo,
Luciano
int main(int argc, char* argv[])
{
 RASENTRY *lpEntry = NULL;
 char  szAlternateNumber[10][129];
 DWORD dwEntrySize = 0;
 DWORD dwRet;
 dwRet= RasGetEntryProperties( NULL, "MyRASEntry", lpEntry, &dwEntrySize,
NULL, NULL);
 if (dwRet == ERROR_BUFFER_TOO_SMALL)
 {
  lpEntry = (RASENTRY*)malloc(dwEntrySize);
  lpEntry->dwSize = sizeof(RASENTRY);
  dwRet = RasGetEntryProperties( NULL, "Via Verri", lpEntry, &dwEntrySize,
NULL, NULL);
  if (!dwRet)
  {
   szAlternateNumber[0]=lpEntry->dwAlternateOffset;
  }
  free( lpEntry );
 }
return 0;
}

   {
    szAlternateNumber[0] = &((char *)lpEntry)[ lpEntry->dwAlternateOffset];
    // cosě dovrebbe funzionare bene.


Newsgroup: it.comp.lang.c
Titolo: Consigli su editor

Sto cercando un editor funzionale per scrivere codice C. Ho
provato TextPad 3.2.5; funziona bene ed e' compatto ma
purtroppo non mette in evidenza le parole chiave.
Cosa mi consigliate ? Grazie mille.

Stone's Text Tool v. 1.0.2 o successive   ---> 
www.image.dk/~stone
L'unico difetto è che la tabulazione è di 2 caratteri e non ho trovato
il modo di modificarlo (a meno di non mettersi a fare Reverse
Engeneering ...).


GNU emacs.
-- 
Maurizio Loreti                      
http://wwwcdf.pd.infn.it/~loreti/mlo.html
Un. of Padova, Dept. of Physics - Padova, Italy          
lor...@padova.infn.it

 Cosa mi consigliate ? Grazie mille.
UltraEdit32
Newsgroup: it.comp.lang.c
Titolo: Chi mi manda le Norton Guide?

 in italiano .
Ultimamente mi sto trovando benissimo con questo sito:
http://host.aspide.it/trickyc/trkcfrm.htm
Veramente un ottimo libro on-line per il C.
Oppure puoi rivolgerti a questi classici siti:
http://gpi.eden.it/
http://www.itaprogaming.com/mainframe.htm
Buon lavoro,
giovann...@libero.it
Newsgroup: it.comp.lang.c
Titolo: dubbi dubbi

Questa volta non devo fare un codice ma devo leggere e spiegare rigorosamente
un programma già fatto.
Il programma  accetta un numero e un esponente  e ritorna il risultato
dell'elevazione a potenza.
 Tuttavia ci sono delle cose che non capisco. Ho inserito le domande nel
codice stesso. Le trovate come /* Domanda:.....ecc. ecc.
Chi mi aiuta?
Grazie:)
#include <stdio.h> 
#include <conio.h> 
long expo (int numero,int esponente); 
 
void main (void) 
{ 
  char c; 
  int numero = 10; 
  int esponente = 9; 
 
  printf("\n\n%i alla %i = %li",numero,esponente,expo (numero,esponente)); 
/* Domanda: cos'è %i e cos'è %li???? */ 
  c = getch(); 
} 
 
long expo (int numero,int esponente) 
{ 
  if( esponente ) return (long) numero * expo (numero,--esponente); 
  else return 1L; 
/*Domanda: cos'è 1L?????? */ 
} 
 
 
 
 
 
 
 
 
 
-- 
Posted from 
squid.spin.it
 [147.123.1.111] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

/*Domanda: cos'è 1L?????? */ 
E' il valore 1 in formato intero lungo.
La L finale serve a indicare esplicitamente che 1 e' da
intendersi con l'1 dei long.
-- 
The Follet

 void main (void)
si deve mettere 
int main(void)
e il compilatore te ne dovrebbe avvisare tramite un warning
Newsgroup: it.comp.lang.c
Titolo: Djgpp

Salve a tutti. Ho scaricato, per il gcc, i seguenti file:
djlsr201.zip
djdev201.zip
gcc281b.zip
rhide14b.zip
Non mi servono make o altri tool GNU, devo solo compilare piccolissimi
programmini in ANSI C. Solo che quando tento di compilarne uno, mi dice che
non trova l'assemblatore "as". In che pacchetto e' contenuto questo
assemblatore ?
Grazie in anticipo !
-- 
*** Gottardi Matteo / 
goma...@tin.it
 ***
*Linux*, the choice of a _GNU_ generation

assemblatore ?
In Bnu###*.zip dove ### e` il numero della versione e * e` 'S' se
scarichi i sorgenti oppure 'B' se scarischi il binario gia` compilato.
Io ho :	 BNU281B.zip      per esempio....
Comunque scaricati anche il Mak###*.zip se devi compilare qualcosa di
pronto, oppure qualche utility GNU di cui hai solo i sorgenti.
Anche se ne hai bisogno credo che ti convenga proprio averli.
-- 
Gargamella alias Massimo Lauria





 scarichi i sorgenti oppure 'B' se scarischi il binario gia` compilato.
Grazie a tutti per le risposte, adesso compilo :)


Che figura.... scusate il triplo post.... e non ho nemmeno Outlook
come capro espiatorio
 :- (


Anche se ne hai bisogno credo che ti convenga proprio averli.
A cosa serve il make?
'zzie e 'ao!
Paolo Perini
lau...@digibank.it
http://www.digibank.it/kaiohshin/
"Non ho bisogno delle riviste! La mia vista divina mi permette
di vedere chi fa la doccia e chi si cambia!" - il dio KaiohShin

A cosa serve il make?
"make" e` una utility per la costruzione di progetti composti da
molteplici file con dipendenze tra loro.  Prende in input un file di
testo che elenca le dipendenze, dice come un file si ricava da
un altro, eccetera, nella sua specifica sintassi; quando viene 
invocato, ricostruisce solo i file dipendenti che non sono
aggiornati rispetto a quelli da cui dipendono.
L'uso piu` tipico e` la costruzione di programmi, dove ad es
un certo file .EXE dipende da vari .OBJ (dai quali viene "fatto"
con un'operazione di link), ogni .OBJ dipende da un sorgente
(ad esempio .C) ed eventualmente vari header (.H), ecc.  Ma
l'uso non e` certo limitato a questo.
Le due versioni attualmente piu` diffuse sono il potente GNU
Make (gmake) e il peculiare "new make" (nmake) Microsoft.
Alex

Newsgroup: it.comp.lang.c
Titolo: AIUTO EDITO DI TESTO!!!!!

Ciao a tutti,
volevo chiedere informazioni riguardo a come ad un deitor di testo che
volevo costruire:
il problema che mi č sorto, č come fare a fare la schermata dell'editor...
cioč tipo nel vi o nel pico  in Unix c'č una schermata dove il testo viene
elaborato dove ci si possa muovere, inserie, cancellare le parole dgtate e
cosě via...
COME POSSO FARE????!?!?!?!??
******-----_______ GRAZIE PER OGNI POSSIBILE SUGGERIMENTO________----******

 COME POSSO FARE????!?!?!?!??
Prova ad usare le (n)curses, se programmi sotto linux/unix.
--
 Ciao, Luca.
 Reply to 
luca....@tiscalinet.it
Newsgroup: it.comp.lang.c
Titolo: Libreria time

Ciao a tutti, potreste aiutarmi?
Devo vedere quanti millisecondi impiega una routine ad essere eseguita.
Come faccio? Io avevo pensato di memorizzarmi il time prima e sottrarlo al
time dopo l'esecuzione  ma non ci sono riuscito.... qualcuno puņ aiutarmi?
Grazie
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 time dopo l'esecuzione  ma non ci sono riuscito.... qualcuno può aiutarmi?
Puoi utilizzare la funzione clock(3) per ottenere un'approssimazione del
tempo trascorso e poi convertirlo in secondi... non ne conosco la
granularita' pero'.
Esistono altre soluzioni non portabili.
La soluzione migliore resta quella di usare un profiler (per esempio gprof).
-- 
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."

time dopo l'esecuzione  ma non ci sono riuscito.... qualcuno puņ aiutarmi?
... usa il profiler ...
sbirish

>... usa il profiler ...
Scusate l'ignoranza, ma cos'è questo "profiler"?
Grazie

 Grazie
Uno strumento che serve per collezionare statistiche sul funzionamento
del programma.
In particolare serve per vedere il tempo che impiega una certa funzione
ad essere eseguita e per quanto tempo viene eseguita in rapporto alla
durata del programma. Questo e' utile per sapere quali funzioni
ottimizzare nel caso di programmi time-critical.
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 La soluzione migliore resta quella di usare un profiler (per esempio gprof).
Grazie, comunque io devo includere queste statistiche all'interno
dell'applicazione e restituirle in output.


 dell'applicazione e restituirle in output.
In Ambiente posix potresti ispirarti al comando time (ne scarichi i sorgenti
per esempio da qui
http://ftp.debian.org/debian/pool/main/t/time/time_1.7.orig.tar.gz
) e
capire come ottiene la precisione in millisecondi.
Se ti interessa in altri ambienti spostati su gruppi specifici :)


time_t start, fine;
start = time(NULL);
operazioni da eseguire...
fine = time(NULL);
printf("\nTrascorsi: %d secondi.", fine - start);
--------------------------------
Inviato via 
http://usenet.libero.it

 printf("\nTrascorsi: %d secondi.", fine - start);
time ha una risoluzione di 1 secondo, (e potrebbe essere) un po' troppo
grossolana per valutare il tempo di esecuzione di una routine.
Forse questa e' migliore, ma non ci metto la mano sul fuoco.
   double     elapsedTime = 0;
   clock_t    start = 0;
   clock_t    stop  = 0;
   start = clock();
....
....
   stop = clock();
   elapsedTime = (double)(stop - start)/CLOCKS_PER_SEC;
   printf("Tempo trascorso %d\n", elapsedTime);
La risoluzione dovrebbe essere del millisecondo, ma fornisce
informazioni _SOLO_ sul TEMPO DI PROCESSORE usato dalla routine,
NON SUL TEMPO TOTALE impiegato per essere eseguita. 

Newsgroup: it.comp.lang.c
Titolo: Webserver C o C++?

Giorno a tutti,
vorrei provare a scrivere un piccolo webserver, perchè lo ritengo un
progetto interessante, di cui è facile trovare documentazione e
contiene un sacco di elementi utili da usare anche in altri progetti.
Stavo pensando di provare a scriverlo in C++ per usare un approccio
OOP, ma online tutti gli esempi sono in codice C, quindi volevo
chiedervi:
 - c'è una reale necessità per scegliere il C oppure è una semplice
scelta del programmatore?
 - Ho letto in giro che il C++ è tendenzialmente più lento del C, ma
lo è tale da influenzare pesantemente un programma?
 - Nel caso, secondo voi vale perdere un po' di performance per un
codice più facilmente mantenibile?
Voglio scrivere il ws per puro scopo didattico quindi diciamo che
attualmente non mi urge qualcosa di estremamente veloce, ma mi
interessa l'implementazione e le idee di base, per questo vi ho
chiesto quanto sopra...
ps. ho scritto qui anzichè nel gruppo C++ perchè... non sapevo dove
metterlo essendoci delle domande generiche.
Buona giornata a tutti.

 Buona giornata a tutti.
Ciao!

 Ciao!
Ciao, ciao! Grazie mille.

 tutorial che trovo- programmare su windows...
Questo non capisco... Programmare in C++ su Linux � una vera pacchia, io 
lo trovo molto pi� semplice che sotto windows. Tantopi� che tu non hai 
bisogno di usare librerie molto particolare per il tuo ws.
E.

 E.
Io anche adoro programmare in ambiente *nix, ormai ci ho fatto
l'abitudine, nonostante ciò non rifiuto windows per ovvi motivi di
formazione nonchè per sfizio e conoscenza personale. Purtroppo
"googlando" in cerca di qualche buon tutorial C++ orientato ad oggetti
(o magari qualche buon esempio sulla programmazione di interfacce
grafiche) si incontra nella magior parte dei casi qualche tutorial/
guida per ambiente windows.
Il ws comunque si lo svilupperò per piattaforma linux perchè ho già
una certa pratica con le operazioni di networking in C.
Riguardo al C++ sotto *nix non posso dire... non avendolo mai usato
prima d'ora per qualche progetto degno di nota.

Newsgroup: it.comp.lang.c
Titolo: [OT]Sorgenti gcc3.3

Salve a tutti, ho torvato su un cdrom
i sorgenti del gcc3.3, vorrei sapere se e possibile
tramite il gcc2.95 installato sul mio pc versione Djgpp,
compilarli ed avere cosě il gcc3.3?
Serve make? come si usa?
Grazie a tutti ciao

"[//**Newbie**\]" <xzy@???.org> ha scritto nel messaggio
news:FteUa.203986$lK4.5...@twister1.libero.it...

leggiti il mio tread dove si parla della compilazione del gcc ... vedrai che
ti chiarisci le idee subito ...

Newsgroup: it.comp.lang.c
Titolo: [HELP]COME POSSO ESERCITARMI???

Ciao a tutti. Esiste online un sito contenente parecchi esercizi di livello
medio????

 wrote in message
9t150k$ldh$1...@nreadb.inwind.it...

Newsgroup: it.comp.lang.c
Titolo: i valori restituiti da una funzione

ho scritto una funzione
boolean Find(char *j, stack *stk)
{
  if (*j == '\0') {
    p = stk -> top;	
    return ((boolean) true);
  }
  else if (*j != stk -> top -> d)
    return ((boolean) false);
  else Find(++j, stk -> top -> next);
}
(è probabile che ci siano degli errori)
il mio problema è che se la stringa è contenuta nell'array devo
tirarla fuori per sostituirla con un alta stringa, sto implementando
un'automa a pila che analizza una stringa tramite shift-reduce. la
stringa dallo stack posso cancellarla tramite dei pop iterati ma non
so come fissare l'ultimo elemento da estrarre
-- 
Daniele
==============
POTERE E POTENZA!
(saluto evroniano)
ICQ: 106349465 nick: grifter
-togliere NOSPAM per le risposte-

so come fissare l'ultimo elemento da estrarre
puoi far puntare il primo elemento dello stack a NULL ,e verifichi che
quello che stai andando a controllare non sia NULL
if (stk==NULL) return (boolean)false;
cod

cod
non mi sono spiegato: gli elementi dello stack che voglio cancellare
si trovano in cima allo stesso, ma lo stack contiene altra roba sotto,
estraendo elementi fin quando non trovo NULL significa svuotare lo
stack, e non posso farlo, anzi affinché il programma funzioni alla
fine deve rimanere un unico elemento chiamato assioma, ma quasto è un
altro discorso
quello che mi serve è una funzione del tipo:
Find(&stack, &str) {
... confronta la stringa con lo stack
se la trova => return vero e il puntatore all'elemento nello stack che
è uguale al primo carattere della stringa
altrimenti return falso e vai avanti


 }
Se vuoi invece utilizzare in modo coerente lo stack potresti provare a
costruirti uno stack temporaneo
in cui inserisci i caratteri tolti dal primo. Mentre vuoti quello in cui
cerchi riempi il temporaneo. Sia che
la ricerca abbia dato esito negativo o positivo puoi ricostruirti lo stack
di partenza.
ciao

Newsgroup: it.comp.lang.c
Titolo: Programmatore informatico ricerca socio Fin.

Programmatore informatico per sviluppo Azienda servizi telematici ( reti ,
siti, doc. el. extranet, intranet, internet)  in nord-centro Italia ricerca
socio finanziatore, potenzialitŕ notevoli di crescita esponenziale del
fatturato in periodo medio-breve.
Obiettivo collocazione leader nella propria fascia di mercato in tempi
medio-brevi.   
adi...@iol.it

 crescita esponenziale del fatturato in periodo medio-breve.
ESPONENZIALE! 
A parte il fatto che hai sbagliato ng, cerca di usare termini corretti o
almeno di spararle un pò meno grosse. 
J

 almeno di spararle un pň meno grosse.
Perchč? Non č difficile essere esponenziali nel breve periodo.
Oggi non guadagno niente, domani mille lire, domani 2mila, poi 4mila, ecc.
Il problema comincia ad essere dopo una settimana o due...
--
Alessandro Monti

]

 fra un anno, 2 mila fra due...
Allora il messaggio iniziale aveva ragione! WOW! :-)
--
Alessandro Monti
Newsgroup: it.comp.lang.c
Titolo: srand(time(time_t*)

Un saluto a tutti i visitatori del newsgroup,
avrei bisogno del vostro aiuto per generare una semplice funzione random.
Ho intenzione di utilizzare la funzione di libreria
int rand(void);
ma prima ho bisogno di inizializzarla con un seed appropriato con
srand(unsigned int).
Ho pensato di utilizzare qualcosa del tipo srand(time(0)).
Quale è il modo per generare un numero random dipendente dal tempo ?
spero di essere stato chiaro..
Grazie
Marcello

 spero di essere stato chiaro..
Non ho ben capito cosa vuio sapere, comunque: 
- La forma piu' corretta sarebbe
  srand((unsigned)time(NULL))
- Dopo di che il modo di procedere dipende da te: se ti serve un pessimo 
  generatore usi (rand)%M che genera numeri distribuiti in genere non moldo 
  uniformemente tra 0 ed M-1.
  Ovviamente ogni numero dipende dal precedente usando la funzione rand().
Ti consiglio di valutare anche questo metodo comunque (genera numeri casuali 
da 0 a mymax-1):
    int mynum = (int) ((double)mymax * rand() / RAND_MAX+1);
-- 
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."

 Quale è il modo per generare un numero random dipendente dal tempo ?
Vorrei farti notare che "numero random" dipendente da qualcosa e'
una contraddizione di termini.
Se qualcosa e' random, lo proprio grazie al fatto che non dipende da
niente :-)
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Ok , credo che avrei dovuto scrivere pseudorandom.
Mi hai colto in fallo,grazie per l'attenzione.
Marcello
Angelo Paolitto ha scritto nel messaggio

Newsgroup: it.comp.lang.c
Titolo: mail

volevo sapere se e come fosse possibile mandare una e-mail da un programma
in c?
si può fare in c standard o dipende dal sistema operativo?
se non si può fare in c standard avevo bisogno di farlo per sistemi win32.
 se mi sapete aiutare ve ne sarei molto grato, se no mi sposto poi sul
newsgroup di win!
----------------
ApO
----------------

ApO wrote:

Ciao.. 
Non capisco cosa intendi mandare un e-mail da un programma in C .
Se intendi di scrivere un programma C che ha le funzioni di un client Email 
.. allora si.. anche perche` ne feci anche io tempo fa.
Pero su questo campo c`e da discutere , perche bisogna studiare le socket 
in C. e via di seguito..
Spero di esser stato chiaro .
Bye.

 Bye.
------------------
ApO
------------------

 newsgroup di win!
mi sa che hai le idee un po confuse...
cmq ti č sufficente aprire un socket di comunicazione con un server
smtp, e tramite protocollo smtp mandare la tua email. per il protocollo
devi guardarti gli rfc relativi, mentre per aprire il socket dipende
strettamente dal so sottostante, quindi forse č meglio come hai detto tu
se cambi ng per avere informazioni piů precise.
ciao
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: Per informazioni si veda 
http://www.gnupg.org
iD8DBQE9bUzqtaNqC4xdaIgRAvqUAKCFEgHh6eTKia8x16DDxkHALXVP4QCfcqSv
ENUqAFMCETHSvwi1CVt57UM=
=d0yN
-----END PGP SIGNATURE-----
-- 
real name: Fabrizio Chiarello	| a Debian GNU/Linux | i'm in the could
nick:	   
ckk8.org
		| "Woody" is running | do better category
e-mail:	   
fchia...@inwind.it
	| on Linux v2.4	     | 		  - ckk8
GnuPG KeyID: 0x8C5D6888 	| visit 
http://www.gnupg.org

 (non è il mio caso!!!!)  :-)
Se sei sotto Linux/Unix forki e fai una exec** del comando "mail".
Per vedere la sintassi di "mail" guardati la pagina del man.
spero di esserti stato di aiuto... forse un po' in ritardo,
nids

 nids
un po in ritardo cmq no bproblema, ma tanto sono sotto win32!!
ApO
Newsgroup: it.comp.lang.c
Titolo: TermPrint

Ciao a tutti
sono nuova di questo forum e quindi per prima cosa saluto tutti i
partecipanti. Ho bisogno del vostro aiuto. Ho a che fare con un
progetto da scrivere in c e sto trovando non poche difficoltà con la
termprint. Fino a quando si tratta di fargli stampare dei char nessun
problemi, anche la stampa della classica "Hello world!" il problema
nasce quando provo a fargli stampare interi, assume comportamenti non
chiari. Ah cosa importante, l'eseguibile deve girare su umps (che è un
simulatore). Ho cercato dappertutto ma non ho trovato documentazione
utile su questa funzione
Grazie cmq a tutti
Ciao Francesca

 ha scritto nel messaggio
news:1159044409.5...@k70g2000cwa.googlegroups.com...

In C standard non esiste quella funzione.
Comunque sarebbe interessante se ci mostri almeno
il prototipo o un esempio di come la stai utilizzando.
Un trucco che potrebbe risolverti il problema è il seguente:
#include <stdio.h>
/* solo come esempio */
static void termprint(char buff[])
{
        printf("%s\n",buff);
}
int main(void)
{
        char buff_da_stampare[100];
        int intero_da_stampare;
        intero_da_stampare = 200;
        sprintf(buff_da_stampare,"%d",intero_da_stampare);
        termprint(buff_da_stampare);
        return 0;
}
Cioè converti l'intero in una stringa e poi la stampi.
Naturalmente la mia termprint è solo un esempio.
Probabilmente come argomento potrebbe
prendere la lunghezza della stringa o un
device (un terminale appunto).
Forse il tuo problema sta nel fatto che passi come
argomento direttamente l'intero ?
Mi sa che non lo puoi fare :-)
--
Giorgio Silvestri
DSP/Embedded/Real Time OS   Software Engineer

Si, in effetti questa funzione non fa parte del c standard. Il tutto
viene compilato dal compilatore cross-compile, è un estensione della
gcc normale.
Mi sa che hai avuto un'intuizione molto ma molto furba.
Le chiamate che danno successo sono del tipo
termprint("Hello world \n", 0);
oppure
char pippo[10]="ciao",
termprint(ciao, 0);
dove 0 è il terminale su cui si stampa.
Proverò a metter in pratica il tuo suggerimento
Grazie mille.

Newsgroup: it.comp.lang.c
Titolo: usare gdb con emacs

Salve a tutti!
Sto cercando di debuggare un codice usando il gdb; in particolare
vorrei utilizzare ciò non per trovare un errore (il codice infatti
funziona ed è testato) ma per capire le varie subroutine che il codice
tocca durante un run con un semplice file di input.....è
possibile???se si come???
Altra domanda ..... vorrei utilizzare il gdb con emacs.....ho trovato
in rete che dovrei fare il comando Mx -gdb ma non mi funziona in quanto
dice che non trova il comando Mx....dipende dal mio gdb che forse non
è completo???
Grazie a chi vorrà chiarire i miei dubbi
G.

sucsate...ho commesso un errore nel ripsortare la domanda ....il
comando che ho fatto e non funziona è M-x gdb
cri ha scritto:


 
Che versione di Emacs usi e su quale piattaforma? A me
il comando funziona anche su Windows (poi si pianta per
la mancanza di gdb, ma questo e' un dettaglio) ;-)
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 la mancanza di gdb, ma questo e' un dettaglio) ;-)
allora...io lavoro sotto linux e la versione di Emacs è la 21.4.1
ciao 
G.

qualcuno mi può dare una mano per favore????
nn riesco ad andarne fuori...nè usando emacs nè diretaamente da
terminale linux
grazie
G.

 tocca durante un run con un semplice file di input.....č
io userei il programma ddd che penso sia una versione con interfaccia
grafica di gdb e comunque e' piuttosto semplice da usare.
ciao,
g.

 terminale linux
Prova a vedere se nell'installazione di emacs c'e' una directory
denominata lisp con gud.elc dentro
HTH


 grafica di gdb e comunque e' piuttosto semplice da usare.
infatti usa ddd.

 denominata lisp con gud.elc dentro
ciao
dentro lispnn c'è quello che dici tu ma
cjk-enc.el
thai-word.el
cjktilde.el
cjkspace.el
devo scaricare gud.elc? 
grazie G.

 devo scaricare gud.elc? 
Se non ce l'hai direi di si... E' (o dovrebbe essere) quello il
modulo lisp che consente l'interazione con gdb.

Newsgroup: it.comp.lang.c
Titolo: Ancora sui giorni della settimana

Ho trovato su un vecchio libro un programma in BASIC per determinare che
giorno della settimana corrisponde a una certa data. L'ho tradotto con
successo in una funzione C (che riporto in basso), ma non riesco a capirne
il funzionamento preciso. Qualcuno mi può aiutare? Ci sono soluzioni
alternative?
typedef struct {
     int g;
     int m;
     int a;
     } date;
typedef enum {lunedi, martedi, mercoledi, giovedi, venerdi, sabato, domenica
     } day;
day weekday(date d) {
     int x,f1,f2,f3,f4,f5;
     day n;
     if (d.m<=2) {
        d.m+=12;
        d.a--;
        }
     f1=d.a/4;
     f2=d.a/100;
     f3=d.a/400;
     f4=2*d.m+((d.m+1)*.6);
     f5=d.a+d.g+1;
     x=f1-f2+f3+f4+f5;
     n=x%7;
     return n;
     }
··· Vito Dantona  ···
http://www.vitus.cjb.net
vi...@milanmania.com
ICQ: 18231643
«If I can see further than others,
    it is by standing on the shoulders of giants» (I. Newton)

Qualcuno mi puň aiutare? Ci sono soluzioni alternative?
sulle faq di comp.lang.c c'e' una funzione molto semplice.
--
Andrea Laforgia (ICQ 87230455)

 sulle faq di comp.lang.c c'e' una funzione molto semplice.
Sì, ma più che la funzione in sé mi interesserebbe capirne il funzionamento.


Newsgroup: it.comp.lang.c
Titolo: Restricted Pointer

Stavo leggendo la documentazione del gcc3.0 e ho trovato che i
"restricted pointer" previsti nel C99 sono supportati. 
Cosa sarebbero questi restricted pointer? Sul K&R non ce n'e` traccia.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Runtime error 6D at f000:a12f : user incompetente

Kronos
Puntatori lavati a 90 gradi ?
Maurus

 Puntatori lavati a 90 gradi ?
ROTFL
-- 
 Ciao, Bianco.
 Reply to luca.bianco (at) 
tiscalinet.it

 Cosa sarebbero questi restricted pointer? Sul K&R non ce n'e` traccia.
 
http://www.lysator.liu.se/c/restrict.html
--
Alla prossima,
Marco

 Puntatori lavati a 90 gradi ?
LOL :)
Ho trovato un riferimento nella documentazione del gcc3.0 dove si diceva
che i restricted pointer (previsti  dal C99) sono pienamente supportati.
Da qui e` nata la domanda: Cosa sono 'sti restricted pointer?
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
La vasca da bagno fu inventata nel 1850, il telefono nel 1875.
Se fossi vissuto nel 1850, avrei potuto restare in vasca per 25 anni
senza sentir squillare il telefono

        
http://www.lysator.liu.se/c/restrict.html
Ok, letto. Da quello che ho capito, la keyword serve solo per
l'ottimizzazione, giusto?
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Se alla sera, dopo una strepitosa vittoria, guardandoti allo
specchio dovessi notare un secondo paio di palle, che il tuo 
cuore non si riempia d'orgoglio, perche` vuol dire che ti 
stanno inculando -- Saggio Cinese
Newsgroup: it.comp.lang.c
Titolo: disegnino

Oggi vorrei fare appello alle vostre doti artistiche ^_^
1) Come rappresentereste la mappa di allocazione di
     a[1][1] ?
    per a[2][2] provo io (al solo fine di spiegarmi meglio):
        a[0][0]
        a[1][0]
        a[1][1]
Spero sia questa.
2) Se a[1][1] si rappresentasse
    cosi':
        a[0][0]
    come si applica l'algoritmo <1>
            (numero colonne)* riga + colonna
    per individuare una data locazione?
    Mi spiego meglio:
    Nel caso volessi ricercare, sulla rappresentazione da me disegnata, la
locazione a[1][1]
    applicando quanto detto, dovrei fare
            1 * 1+1
    cioe' 2
    ma se sulla rappresentazione di a[0][0]
    ho solo un elemento (lo zeresimo)
    come assegno un offset di 2 se oltre a[0][0] non ho altro?
<1> Algoritmo del paragrafo 5.9 "Puntatori e vettori multidim. "  pag 144
ln.8 K&R
Mille grazie.
    Leonardo

            1 * 1+1
Non puoi farlo: a[1][1] non esiste.
-- 
Andrea Laforgia (
walkie...@libero.it
)
"Usenet is a strange place" [Dennis Ritchie]

Newsgroup: it.comp.lang.c
Titolo: Aiuto!! niubbo!

accidenti! non riesco a fare un esercizio del k&r...
devo fare un programma che elimina gli spazi in eccesso (se ce ne sono 2 ad 
esempio ne mette uno solo) ma non ci riesco...
avevo pensato di fare un doppio while del tipo
while((c=getchar()) != EOF)
        if(c = ' ') while((c = getchar() == '')
                ;
ma non va... forse perche' ho capito male come funziona getchar() :|
HELP!
-- 
Italians Do It Better

 
prova questo:
<CODE>
while ((c=getchar() != EOF)
{
	putchar(c);
	if (c == ' ')
		while ((c=getchar()) == ' ')
			;
}
</CODE>
Adieu,
-- 
Lestat de Lioncourt                               |          Ciro Mattia Gonano
  JabberID: 
les...@jabber.students.cs.unibo.it
    |    Undergraduate Student in
  ICQ#: 52631406                                  |         Computer Science at
  URL: 
http://www.CS.UniBO.It/~gonano
             |       University of Bologna
            <powered by Linux Slackware 8.1 on Kernel 2.4.18-xfs>

 esempio ne mette uno solo) ma non ci riesco...
Non trovo più l'esercizio ma avevo utilizzato una variabile per
immagazzinare il carattere corrente nel caso fosse uno spazio
if (c == ' ')
      pc = c;
per poi comportarmi di conseguenza nel caso il carattere corrente non
fosse stato uno spazio: se c è diverso dallo spazio ma il carattere
prima (pc) invece è uno spazio stampo innanzitutto uno spazio e poi il
carattere corrente. In questo modo il numero di spazi tra una parola e
l'altra è superfluo.
Non sono capace di spiegare spero tu abbia capito :)
Ciao
Nicholas


era il mio primo tentativo :)
devo avere fatto casino con gli uguali o qlcs del genere...
e si' che qnd ho letto : "...molto spesso agli inizi si fa casino con gli
uguali (scritto in un altro modo ma significava questo) ..."
mi sono detto: " ma a chi vuoi che capiti! " :)
grazie mille ad entrambi :)
Newsgroup: it.comp.lang.c
Titolo: programma C che scrive se stesso

sapete trovare il *minimo* programma in C, che scriva se stesso?
Io ci ho provato ma so che non č il minimo programma del genere.
(nella stringa s non ci devono essere accapo)
__________________________
#define P putchar
char s[]=
"\\\"\n#define P putchar char s[]=#include <stdio.h>xxvoid p(char* s,
int i, int j, int z)x{int h;x for(h=i; h<=j && s[h]!=0;++h)x
if(z==1 && s[h]=='x' && s[h-2]!='=') P(*(s+2));x     else  P(s[h]);x
if(z==1) P(*(s+2));x}xxint main()x{p(s,3,19,1);x p(s,21,29,1);x
P(*(s+1));P(*s);P(*s);P(*s);P(*(s+1));P(*s);P('n');x p(s,3,999,0);x
P(*(s+1)); P(';');P(*(s+2));x p(s,30,999,1);x return 0;x}x";
#include <stdio.h>
void p(char* s, int i, int j, int z)
{int h;
 for(h=i; h<=j && s[h]!=0;++h)
     if(z==1 && s[h]=='x' && s[h-2]!='=') P(*(s+2));
     else  P(s[h]);
 if(z==1) P(*(s+2));
}
int main()
{p(s,3,19,1);
 p(s,21,29,1);
 P(*(s+1));P(*s);P(*s);P(*s);P(*(s+1));P(*s);P('n');
 p(s,3,999,0);
 P(*(s+1)); P(';');P(*(s+2));
 p(s,30,999,1);
 return 0;
}

 (nella stringa s non ci devono essere accapo)
non so se sia il minimo... ma sicuramente e' moooolto piccolo... ;)
char *p="char 
*p=%c%s%c;main(){printf(p,34,p,34);}";main(){printf(p,34,p,34);}
(scritto tutto su una riga)
miraccomando provalo su un terminale non bufferizzato, altrimenti
la mancanza di \n nella printf non te lo fa stampare.
bye
-- 
    --==> ALoR <==---------------------- -  -   -
  There are only 10 types of people in this world...
  Those who understand binary, and those who don't.

la mancanza di \n nella printf non te lo fa stampare.
ok, bravo, funziona; ma usi printf senza #include <stdio.h> e 34 č
ascii, potrebbe esistere qualche conpilatore che ha bisogno
dell'include o non usa il sistema ascii
Newsgroup: it.comp.lang.c
Titolo: Ricerca libri (one more) ...

scusate se ri chiedo ancora un'argomento super trattato, ma mi serve sapere
un buon libro sul C che tratta l'ultimo standard, ho visto il K&R ma e' del
1998 ... e se l'ultimo standard e' del 99 o aveva la palla di vetro o non lo
tratta nel suo libro ;-)
quindi nuovi suggerimenti su ottimi libri sul C99 ??? (mi serve per
affiancare i libri C++ che ho Bj.S e Ekel chepero' non trattano molto
approfonditamente ordine di valutazione, libreria standard C, e varie altre
cosine che il C++ eredita dal C ma che tutti e due paiono non aver
menzionato o le hanno sorvolate troppo alla leggera ...)
ciao e grazie

 quindi nuovi suggerimenti su ottimi libri sul C99 ???
Ho trovato questo:
     The Fifth Edition of C: A Reference Manual (C:ARM5, ISBN
     0-13-089592X) was published by Prentice Hall February 2002. This
     edition adds a complete description of the new features and
     libraries in the C99 standard, while maintaining the description of
     the C89 standard and traditional C.
Vedi 
http://www.careferencemanual.com/
.
-- 
Enrico `Trippo' Porreca

 ha scritto nel messaggio
news:3F734706...@lombardiacom.it...

grazie ... ma lo hai anche letto ??? hai commenti impressioni a riguardo ???
ciao

 grazie ... ma lo hai anche letto ??? hai commenti impressioni a riguardo ???
No, pero` qui c'e` una recensione della 4a edizione: 
http://www.accu.org/cgi-bin/accu/rvout.cgi?from=0ti_c&file=c000249a
Su 
www.accu.org
 trovi molti libri recensiti, prova a fare una ricerca li`.
-- 
Enrico `Trippo' Porreca

 Su 
www.accu.org
 trovi molti libri recensiti, prova a fare una ricerca li`.
lol ma l'nico C99 e' quello che mi hai consigliato tu che non hanno ancora
recensito e : C: The Complete Reference 4ed by Herbert Schildt
solo che visto le porcate che ha scritto negli altri libri anche se questo
lo recensiscono a 4 stelle dite che ci si puo' fidare e comprarlo ???
ma nessuno ha letto comprato conosce libri sul C99 standard ??? (mi sa che
per stare sul sicuro mi prendo un K&R C89 e poi trovero dove leggere dei
cambiamenti ???)
ciao

 ha scritto nel messaggio
news:3F735265...@lombardiacom.it...
ops scusate ...
ho trovato questo raccomandato recente:
http://www.accu.org/bookreviews/public/reviews/b/b002068.htm
che dite visto che e' del 2000 parla del C99, nella recensione purtroppo non
c'e' scritto :-/
ciao

quindi nuovi suggerimenti su ottimi libri sul C99 ??? 
Non so se ne esistano e comunque sarebbero libri sul C e non sullo
standard.  Il miglior riferimento allo standard è lo standard stesso
;-)  Lo comperi dall'ANSI per 18$ (se i prezzi non sono variati).

 aver menzionato o le hanno sorvolate troppo alla leggera ...)
A dire il vero quel che il C++ (che è del '98) eredita dal C,
lo eredita dallo standard del 89, non da quello del 99, per cui
il K&R va benissimo.
In alternativa puoi prendere direttamente lo standard, come ti hanno
suggerito.
ciao
-- 
Gerolamo
Newsgroup: it.comp.lang.c
Titolo: cancellare lo schermo

Uso il DJGPP e non riesco a cancellare lo schermo.
Ho provato con clrscr, includendo conio.h, ma non funziona.
come posso fare?
grazie 
ludo...@libero.it
-- 
Posted from 
smtp3.libero.it
 [193.70.192.53] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Grazie per il tuo aiuto, ma purtroppo non funziona.
non riesco a trovare la libreria dove si trova screenclear().
Se puoi fammi sapere.
grazie ancora
-- 
Posted from 
smtp4.libero.it
 [193.70.192.54] 


...


Grazie per il tuo aiuto, ma purtroppo non funziona.
Scusa se la mia frase ti puo' risultare un po' inadatta...
...ma hai scritto anche le parentesi?
"clrscr();" e' diverso da "clrscr;"
ciao
Bun]{er
-> Home: 
http://bunkersite.cjb.net
-> E-mail: scorp...@NOSPAMtin.it

Newsgroup: it.comp.lang.c
Titolo: Gestore memoria statica

Come parte dello sviluppo di una nuova consolle per videogiochi, sono
stato incaricato di sviluppare il codice che si occuperà della
memorizzazione dei dati dei giochi (missioni svolte, livelli superati,
opzioni di gioco, caratteristiche dei personaggi, ecc.). A causa di
limitazione dell'hardware, è disponibile per la memorizzazione di
questi dati solo un banco di memoria statica di 64Kb. Tale memoria
viene gestita a pagine di 512 byte: ogni gioco eseguito sulla console
(identificato da un codice identificativo unico, assegnato dal
produttore) può chiedere al gestore memoria di memorizzare un numero
di pagine comprese fra 1 e 64 (ovvero, fra 512 e 32768
bytes). Nel caso non ci sia memoria disponibile nell'ambito dei 64Kb,
il gestore deve abbandonare le pagine più vecchie fra quelle
memorizzate (si perdono cioè i dati memorizzati dal gioco che non è
stato usato da più tempo per far spazio a quelli del gioco
attualmente in uso) e utilizzarle per soddisfare la richiesta
corrente.
Si noti che tutti i dati di servizio necessari a gestire la memoria
statica devono essere a loro volta conservati all'interno di tale
memoria (altrimenti, sarebbero persi allo spegnimento e successivo
avvio della console); a tale scopo deve essere dedicato il minor
numero possibile di pagine, per lasciare maggior spazio ai dati dei
giochi.
Qualche dritta?

 Qualche dritta?
Qual è il problema?
E.


non ho la più pallida idea da dove iniziare.  mi basterebbero delle
dritte, poi per l'implementazione provvedo io.

 dritte, poi per l'implementazione provvedo io.
Devi fare un'interfaccia che permetta al codice del gioco di leggere e 
scrivere le informazioni da "salvare". Il tuo codice deve sistemare 
tutte queste informazioni in una zona di memoria contigua, utilizzando 
il minor spazio possibile. Devi mantenere anche l'informazione se questi 
dati sono stati modificati dall'ultimo salvataggio (ovvero ogni volta 
che una variabile viene modificata setti un flag).
Dopodichč prepari anche una funzione che salva le informazioni sulla 
scheda e una funzione che carica le informazioni dalla scheda di memoria.
E.
Newsgroup: it.comp.lang.c
Titolo: chiedo aiuto disperato....lang C

Salve a tutti ragazzi.
Mi serve l'aiuto di un esperto di linguaggio C.
Ho un progettino da fare, si tratta di un sistema di Data Server per il
calcolo distribuito in Posix.
In pratica il server fornisce ai suoi clienti la capacità di accedere
(lettura/scrittura) ai dati.
ecco lo schema generale:(se non visualizzate bene lo schema,allargate la
finestra)
!-----------!
!------------!
!    Dati      !----------> DATA SERVER <------------!   Cliente     !
!-----------!
!------------!
Se qualcuno di voi avesse la possibilità di aiutarmi,si metta in contatto
con me.
Disponibilità anche per MSN.
Rispondete al mio indirizzo: 
dad...@virgilio.it

 Rispondete al mio indirizzo: 
dad...@virgilio.it
Una nota: Usenet non funziona cosi`, le risposte vengono postate nello 
stesso luogo delle domande (se sono in-topic), perche` potrebbero essere 
utili anche per altri frequentatori. Un eventuale scambio privato di 
email e` a discrezione del singolo.

 email e` a discrezione del singolo.
Oltre al fatto che, in questo modo, il dado4u si e' assicurato una bella 
svagonata di spam in piu' al suo indirizzo ;)
-- 
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: consiglio libro

ciao a tutti, mi sapreste consigliare un buon libro per programmare su
unix in c o c++?
mi interessa qualcosa che non insegni a usare una printf o roba simile
(per quello ci sono manuali c), ma lo sviluppo su unix, e che comprenda
anche una buona trattazione di tcp-ip, thread, concorrenza e via dicendo.
grazie
-- 
Spolvera la mia email per rispondermi
"Storia del Mondo. I vulcani eruttarono. Gli oceani ribollirono.
L'universo era in tumulto. Poi venne il cane."
Snoopy
maxy04.splinder.com
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Fai una ricerca con la parola chiave Gapil, č un libro libero puoi 
scaricarlo.
Altrimenti il classico Advanced Unix Programming di Stevens
http://www.amazon.com/Programming-Environment-Addison-Wesley-Professional-Computing/dp/0201433079/ref=pd_sim_b_title_1
Questa credo sia la versione pių aggiornata. Credo si possa considerare 
una bibbia.

 e via dicendo.
Lo Stevens e' lo Stevens, se padroneggi l'inglese tecnico
senza problemi, beh, compralo; 65/70 euro pero'.
Ti consiglierei invece un libro appena uscito, il mese
scorso, del Prof.Malatesta:
Titolo: Linguaggio C in ambiente Linux.
Vai sul sito della UTET universita', nelle novita'
c'e' questo libro, indice compreso, peraltro costa 
appena 23Euro.
Lo Stevens lo acquisirei *altrove*, ciao

 indice compreso, peraltro costa appena 23Euro.
...io l'ho preso on line da Hoepli, 4,90 Euro di spedizione corriere 
espresso.
Ciao e grazie 1000.

 ...comprato! Tante grazie da un lurkatore (-;
[...]
Ciao; pareri, opinioni, impressioni, punti di forza,
punti deboli, linguaggio, etc...
Come l'hai trovato questo libro?
Grazie mille.

 Lo Stevens lo acquisirei *altrove*, ciao
Su amazon, immagino. Io lo ho preso li.
-- 
After more than 30 years of programming we ought to know that the 
design of complex software is inherently difficult.
Niklaus Wirth

 Come l'hai trovato questo libro?
L'ho ordinato da Hoepli e sto aspettando che mi arrivi. Visto anche il 
discorso di crxor, appena mi sarà arrivato ed avrò cominciato lo studio, 
vi farò sapere. Ciao,
Newsgroup: it.comp.lang.c
Titolo: FAQ 10 - Acquisire da file una stringa intera, terminata da \n

Questa è semplice...usare fgets()!
Ma avrei piacere di avere una comparazione con fscanf() e i punti deboli di
quest'ultima nei confronti della prima.
Se non ricordo male sul NG avevo letto acnhe qualcosa a favore della scanf
in determinate circostanze.....
Grazie
--
Marco Coppo
University Of Sheffield

 quest'ultima nei confronti della prima.
Beh, la fgets() permette un maggiore controllo sul numero di caratteri
letti ma la scanf() permette di leggere tutti i tipi di dati built-in.
EMG

 letti ma la scanf() permette di leggere tutti i tipi di dati built-in.
xche' non usare gets() ?



12.23:  Why does everyone say not to use gets()?
A:      Unlike fgets(), gets() cannot be told the size of the buffer
        it's to read into, so it cannot be prevented from overflowing
        that buffer.  As a general rule, always use fgets().  See
        question 7.1 for a code fragment illustrating the replacement of
        gets() with fgets().
        References: Rationale Sec. 4.9.7.2; H&S Sec. 15.7 p. 356.
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

 xche' non usare gets() ?
Perché gets() non permette di controllare il numero massimo di caratteri
inseribili.
EMG




Gia', probabilmente nelle FAQs quando si parla di funzioni tipo:
strcpy(), scanf();, sprintf();, strcat() si dovrebbe accennare
ai problemi di sicurezza che possono comportare nel caso di un
overflow dell'indirizzo di ritorno che sta nello stack.
Specialmente per la programmazione di rete questo e' fondamentale.
ciao!
antirez

 Specialmente per la programmazione di rete questo e' fondamentale.
Prego! Le FAQ attendono suggerimenti, magari un po' più dettagliati...;-) Se
hai tempo e voglia di scrivere un pezzettino su quest'argomento, io vedo di
inserirlo!
Ciao
Marco Coppo
University of Sheffield