mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: networking

Premetto che non ho letto le faq e ho lurkato solo 100 msg, qundi se
qualcuno mi invia a c...e non mi offendo...:)
Cercavo manuali, tut, howto on line sul networking.
Soprattutto mi assale una curiosità.
Non conoscendo bene il c mi sono sempre chiesto dove si possono
reperire info su librerie tipo netinet/ip...
Sperando di schivare gli insulti, ringrazio e saluto :)
 ------------------------------------
 Il peccato di Caino
 La seduzione del male
 
www.vampiripavia.com
-------------------------------------
                *IcarusDream*
  -Dove un sogno è ancora libero-

una buona guida di programmazione la trovi qua:
http://www.ecst.csuchico.edu/~beej/guide/net/
per quanto riguarda i protocolli il miglior testo e' a mio parere tcp/ip 
illustrated vol.1 di w.r.stevens. il libro vale quello che costa (e' in 
inglese btw).

 Cercavo manuali, tut, howto on line sul networking.
[snip]
Beh...hai la bibbia :
Unix Network Programming, ed.2, vol.1 di W.R.Stevens
--
         ..::SNHYPER::..
      "Security developer"
Linux registered user  #249109 | machine #133922
site=> 
http://snhyper.owns.it
pgp=> 
http://digilander.iol.it/SNHYPER/files/snhyper.pub

Newsgroup: it.comp.lang.c
Titolo: Dichiarazione variabili

Salve a tutti
non ho ancora capito se in C la dichiarazione delle variabili deve essere in
testa alle funzioni/procedure o se vale la regola java per cui posso
dichiararne di nuove nel punto dove mi servono.
La domanda nasce dalla necessità di creare un array (di interi) di una
dimensione che è frutto di un calcolo, ma se prima faccio il calcolo
ovviamente non sono più in testa alla funzione per poi fare la
diachiarazione !!
Avevo pensato di passare la dimensione ad una funzione che avrebbe creato
l'array basandosi sul parametro in ingresso, ma all'uscita l'array
ovviamente va fuori scope. Avvevo allora pensato a static per mantenerlo
"vivo" ma il problema è che comunque non posso accedere all'array da fuori
alla procedura creata.
Cosa posso fare??
Spero di essermi spiegato (e che abbiate un consiglio da darmi ;-P )
Grazie

Cosa posso fare??
Utilizzare una malloc per creare l'array al volo.
int *arr_int =  (int*) malloc((sizeof(int) * dimensione calcolata);
ovviamente poi quando non serve piu' fai una free(arr_int);
ciaps


Come sopra

 dichiararne di nuove nel punto dove mi servono.
in c99 le variabili possono essere dichiarate dove serve, in c89 le
variabili devono essere dichiarate ad inizio blocco (pezzo di codice
delimitato da {...}).
Il seguente pezzo di codice
void fnc()
{
   int ppp = 0;
   ppp++;
   // Inizio blocco interno di codice
   {
       int bbb = 0;
       ....
   }
   ppp = 0;
}
e' valido in c89.
La variabile bbb NON e' visibile all'esterno del blocco dove
e' definita.
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c
Titolo: libc e select

Salve a tutti,
volevo sapere qualcosa riguardo la select ed il suo comportamento
coi socket tcp. sono OT? Qui si parla solo di C, o anche di un pizzico
si sistemi? se c'è un newsgroup + adatto qual'è?
cmq, il mio problema è che non mi sembra la select (con ultimo parametro 0)
torni quando per esempio un socket nell'insieme read connesso con un processo 
che muore senza chiuderlo; cioè quando viene interrotta la connessione per un
socket nell'insieme read della select, questa torna o no?
In sostanza volevo chiedere se qualcuno saprebbe come chiarirmi il come usare
tutti gli fd_set della select ...
grazie
bj

si sistemi?
Quello che tratta della tua piattaforma di sviluppo:
it.comp.os.linux.development
it.comp.programmare.win32
Newsgroup: it.comp.lang.c
Titolo: Leggere da un file binario

Salve a tutti. Ho un problemino... Devo leggere dei dati da un file binario,
ma con il seguente programma non funziona. Devo leggere una word all'offset
0x12 e memorizzarlo nel buffer buf:
#define word char
	FILE *fp;
	word buf;
 
	if( (fp=fopen(argv[1], "rb"))==NULL )
		exit(1);
 
	fseek(fp, 0x12, SEEK_SET);
	read(fp, buf, sizeof(buf));
Solo che cosi' non funziona... Dove sbaglio ?
-- 
Matteo Gottardi / 
gma...@usa.net
*Linux*, The choice of a _GNU_ generation

...

se la read accetta come parametri il file, un puntatore al buffer e la
dimensione del buffer dovresti utilizzare:
read(fp, &buf, sizeof(buf));
e non
read(fp, buf, sizeof(buf));
---
Valter Minute
min...@fortech.it
www.fortech.it/english
---
Are you looking for a good freeware ScreenSaver? Try FOYD!
http://gsanet.com/ntfiles/cmdl/download.cmdl?catagory=ScreenS&bbsfile=foyd11
.zip&ftppath=/pub/screens/
And ask me for the source code.

Solo che cosi' non funziona... Dove sbaglio ?
Devi usare la funzione "fread" e non "read" (da usarsi con le funzioni
"open"). Inoltre in entrambi i casi devi passare il puntatore alla zona di
memoria in cui memorizzare i caratteri letti.
Quindi
fread(&buf, sizeof(buf), 1, fp);        // NB: "&buf" e non solo "buf".
Ciao, Angelo.

	read(fp, buf, sizeof(buf));
aaaaaaaaaaaaaaa !!!!!!!!!
read(fp, &buf, sizeof(buf));
---------------------------------
Andrea,
mica uno qualunque...
-----------------------------------------------------------------------------

 read(fp, &buf, sizeof(buf));
Ehm... Si, lo so benissimo, ma mi e' caduta la coca cola nella tastiera e mi
ha bloccato il tasto &...
Anzi no, degli alieni venuti da Marte mi hanno puntato un disintegratore
alla testa, minacciandomi di farmi saltare il cranio se avessi premuto il
tasto &...
Dopo questa magra figura, vi ringrazio tutti per l'aiuto e vi auguro _buon_
*natale* !

Newsgroup: it.comp.lang.c
Titolo: Problemi con **argv[]

Salve a tutti,
ho un problema con i parametri presi in input...
volgio assegnare ad un intero il valore presente in argv[1]
es:
...
int val;
val = argv[1];
solo che cosi no mi funziona.
Grazie anticipatamente a chiunque ptra aiutarmi.

dre...@libero.it
 wrote:

Certo che non funziona!
Stai cercando di assegnare l'indirizzo del secondo elemento ad un intero!
Devi usare una funzione di conversione, tipo atoi(...)

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

Salve,
è da poche settimane che ho iniziato un corso di programmazione. Le lezioni
si tengono in una scuola privata e durano 600 ore. Le lezioni si svolgono
tre volte a settimana, ma per motivi di lavoro ci posso andare solo una
volta a settimana. I miei compagni di studio già conoscono altri tipi di
linguaggi, mentre io sto a zero...
Vorrei sapere se esiste un libro dove possa iniziare da 0 per arrivare a
comprendere in modo discreto il Visual Basic...
a me hanno consigliato:
Visual Basic 6; di Gary Cornell; McGraw Will
Grazie
-- 
__________________________________
Solinimus

 Visual Basic 6; di Gary Cornell; McGraw Will
Domanda semplice, non prendertela... PERCHE' chiedi su un newsgroup di 
*C* come imparare il *Visual Basic*???
-- 
/**
  * 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: CRobots : esiste una mailing list, o qualcosa del genere?

Come da Subject
Felice Claudio
-----------------
tutto quello dopo @
va' sostituito con
freemail.it


Un po di tempo fa ce n'era una in italiano sul sito di Ioprogrammo ma in
inglese ce ne sono quante ne vuoi...
Basta che cerchi "crobots" su un qualunque motore e te ne viene sicuramente
+ di una (almeno tempo fa era cosi')
Vi][oZ
-- 
Per rispondere togliere NONSCASSA da reply-to.

Newsgroup: it.comp.lang.c
Titolo: definire un tipo byte_t

Saluti.
 
In un mio codice ho diverti oggetti dichiarati come unsigned char, che 
devono contenere dei bytes.
 
Per accorciare le dichiarazioni pensavo quindi di definire:
 
typedef unsigned char byte_t.
 
Lo standard C99, in 6.2.6.1, sembra confermare che unsigned char è il 
tipo corretto da utilizzare.
 
Il problema è che, cercando in rete, ho visto che alcuni definiscono 
byte_t utilizzando uint8_t, ma:
 
1) uint8_t non è opzionale, secondo lo standard
2) uint8_t potrebbe essere non compatibile con unsigned char
 
 
Confermate?
 
 
Grazie  Manlio

 
 
Confermo, ma tieni presente cosa ci devi fare.
Se ti serve un byte macchina hai perfettamente ragione.
Se ti serve invece un byte per, mettiamo, un pacchetto di rete, allora ti
serve uint8_t (che ti assicura funzionare anche se l'unsigned char macchina
è diverso da 8 bit).
 
Ciao!

 
 
Grazie, non ci avevo pensato.
Il problema, però, è che se CHAR_BIT > 8, dubito il compilatore possa 
definire il typedef uint8_t (che infatti è opzionale, secondo C99).
 
Se vuoi fare programmazione di rete devi verificare che
CHAR_BIT == 8, come richiesto da POSIX:
 
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/
 
limits.h.html#tag_13_23_03_06
 
http://pubs.opengroup.org/onlinepubs/9699919799/xrat/
 
V4_xbd_chap03.html#tag_21_03_00_03
 
 
 
Ciao  Manlio

 
 
Anche qui, non necessariamente. Se sei su una piattaforma posix-compatibile
allora sei sicuro, ma se usi un'altra piattaforma chissà.
 
Ciao!
 
P.S. IMHO comunque stiamo facendo un po' troppo i precisini: io un compilatore
c99 che non specifichi lo int8_t, ad esempio, non l'ho mai visto.

 visto.
 
Per quanto ne so, CHAR_BIT != 8 si ha su vecchi sistemi oppure su DSP; ma 
probabilmente per questi sistemi non ci sono compilatori c99.
 
 
Ciao  Manlio
Newsgroup: it.comp.lang.c
Titolo: EOF in getchar()

Da quanto ho capito leggendo vari manuali(ho finalmente acquistato in K&R),
la funzione getchar(), restituisce il carattere digitato, oppure, in caso di
fine del file, EOF(che, almeno in DJGPP è -1).
Il problema è che se scrivo ad esempio c=getchar(); in un programma, e al
momento di dare l'input premo solo invio, ottengo 10 (che corrisponde a CR,
o LF, non ricordo...), e non -1. Come mai?
Su Kerningham & Ritchie ci sono un sacco di programmi, nel primo capitolo,
che si basano sull'EOF restituito da getchar() nel caso non venga immesso
niente.
Poi mi pare strano che venga restituito proprio il carattere corrispondente
a invio, che di norma getchar non dovrebbe restituire, dato che invio è
usato proiprio per confermare l'immissione.
Tanto per dare una idea, nel Kerningham ci sono programmi di questo tipo:
#include<stdio.h>
main()
{
while ((c=getchar()) !=EOF)
    putchar(c);
}
Questo dovrebbe accettare (e mostrare) caratteri, fino a quando non viene
immesso niente, ovvero fino alla pressione di invio, no?
Grazie
--
Marco Iannaccone
ICQ: 18748121
IRC: Tolkien
e-mail: 
marc...@tin.it

Da tastiera l'eof corrisponde ai tasti CTRL+Z oppure F6 per DOS.
Quelle funzioni sono studiate per funzionare su file o per la redirezione
dello standard input, da tastiera usa l'accapo
--
Alessandro Monti

 CR, o LF, non ricordo...), e non -1. Come mai?
  getchar(3) restituisce un numero intero che puoi convertire in
carattere se diverso da EOF, simbolo definito in <stdio.h>. EOF, di per
se`, non e` un carattere: nella lettura da stream su file system, indica
un valore da ritornare quando nel flusso stesso non vi sono piu`
caratteri. In effetti, se apri un file con un normale editor di testo,
non vi trovi nessun carattere di EOF: il file finisce e basta.
  Quando lo stream in lettura e` la console, allora e` possibile
*simulare* la presenza della fine dei caratteri nel flusso, utilizzando
particolari "chiavi". Per esempio, nelle TTY di UNIX, si usa Ctrl+D,
mentre nella shell del DOS esiste Ctrl+Z. 
  Nota: non sono da intendersi come caratteri ma come "segnali" da
inviare alle funzioni di lettura degli stream indicanti il "termine"
(logico, ovvio che lo standard input stream non finisce mai) del flusso
di caratteri.
	Alla prossima,
		Marco

Grazie a entrambi.
Comunque, da quanto ho capito, nel K&R si sono espressi male, in quanto si
deduce che a un invio senza inserimento corrisponde EOF, mentre non č cosě.
Poi, pensavo che getchar() non potesse restituire invio, mentre nella
situazione che ho spiegato (c=getchar(); in assenza di input prima di
invio), restituisce proprio l'ascii 10.

Newsgroup: it.comp.lang.c
Titolo: libro del NG

Visto che le domande sono spesso le stesse perché noi del NG non facciamo un
piccolo manuale sul C in modo che possa essere utile a tutti. Ognuno
potrebbe occuparsi di un capitoletto....che ne dite =?

potrebbe occuparsi di un capitoletto....che ne dite =?
Un libro come lo dici tu esiste, ma in inglese. Di Steve Summit, lo
puoi trovare in versione datata in libreria e in versione piu'
aggiornata online a questo indirizzo: 
http://www.eskimo.com/~scs/
,
oppure lo trovi ogni mese postato su comp.lang.c* e comp.answer.
Una FAQ per il NG italiano era stata scritta, ed e' ancora reperibile
su 
programmazione.it
 (ora come ora non so dirti il link).
Si potrebbe invece istituire un sistema di posting periodico delle FAQ
in formato testo (come avviene per comp.lang.c*), sempre che l'autore
sia daccordo :)
-- 
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."

Penso che sia una ottimissima idea....
io uso molto spesso la faq di comp.unix.programmer...
http://www.erlenstar.demon.co.uk/unix/faq_toc.html#TOC55
cosi poi non faccio piu le domande stupide nel NG...

Newsgroup: it.comp.lang.c
Titolo: URGENTE per tesi - ANSI C ed Automi

Debbo realizzare un supervisore per un sistema di simulazione di un
gassificatore della raffineria API di Ancona. Cerco librerie "attendibili"
con funzioni in ANSI-C per lo sviluppo di automi a stati finiti.
Chiunque abbia un link carino da propormi è ben accetto. Ripeto, mi servono
in ANSI-C, perché le devo integrare con il LabWindows, un tool di sviluppo
di applicazioni ingegneristiche che lavora solo in ANSI-C.
Grazie mille a chiunque mi risponderà, anche in privato. Il prof. si aspetta
il progetto ultimato in una decina di giorni, quindi volevo saltare
l'implementazione di tutte le funzioncine per realizzare le transizioni tra
stati, la composizione di automi, ecc. ecc.
Saluti,
--
Luca Barboni
_________________
dcn...@inwind.it
sha...@inwind.it

prova QUESTO, NON GARANTISCO PERò HA MOLTE SORGENTI: http:\\
sourceforge.net
"Luca" <sha...@ANTISPAMinwind.it> ha scritto nel messaggio
news:YOqd8.6027$fa5.2...@twister2.libero.it...

Newsgroup: it.comp.lang.c
Titolo: interruzione dati

salve a tutti, quale comando mi permette di interrompere il flusso di dati
in input?
Mi spiego meglio: sto facendo un algoritmo, in cui devo inserire dei valori
da input, visto che non è calcolato quanti valori saranno inseriti (sto
creando un algoritmo per la media aritmetica)  e sto usando scanf  (si è
vero, potrei semplicemente memorizzarli in una array con allocazione
dinamica, ma ciò comporterebbe cmq la richiesta del numero di elementi da
inserire, o mi sbaglio?!!) volevo sapere se esite una particolare sintassi
in grado di fermare il flusso di dati, tipo qualcosa che faccia riconoscere
la pressione del tasto esc da input(cosa che verrà interpretata come fine
inserimento dati) o qualcosa di simile.  So di essere moooooolto poco
comprensibile e per questo vi chiedo scusa!
Se qualcuno ha capito che cavolo voglio dire, risponda per favore!!  ;-)
grazie a tutti e ciao

in input?
per quale sistema operativo????
la scanf é praticamente disponibile su tutti, quindi ti dovresti
realizzare una tua funzione di input.... sarebbe meglio indicare
su che tipo di ambiente sviluppi
cod

realizzare una tua funzione di input
potresti spiegarti meglio per favore
ciao

inserimento dati) o qualcosa di simile.  So di essere moooooolto poco
In Linux l'EOF si genera con CTRL+D, in DOS credo con CTRL+Z .
-- 
Saluti,
    Mardy

 ha scritto nel messaggio > >In Linux l'EOF si
genera con CTRL+D, in DOS credo con >CTRL+Z .
cioč se ho capito bene, quando eseguo il programma ed inserisco i dati da
input premendo CTRL+Z genero l'EOF e l'algoritmo va avanti, ma non c'č
niente di + automatico del tipo  "premi ESC quando hai finito" ?
ciao

niente di + automatico del tipo  "premi ESC quando hai finito" ?
No, non cun funzioni C standard; "qui" la lettura ritorna solo in due
casi:
1) quando si incontra un ritorno a capo;
2) quando si incontra l'EOF.
(se sto dimenticando qualcosa, beh, sapete cosa fare :-) )
Il tasto ESC non credo abbia associata qualche funzionalità particolare.
-- 
Saluti,
    Mardy

ringrazio mardy e cod per i consigli dati, l'algoritmo che volevo creare è
questo, ho usato malloc per l'allocazione dinamica della memoria, in modo
che si possa fare la media di n numeri; quello che volevo era creare
l'algoritmo in modo da non dover specificare prima il numero di valori, ma
nel momento stesso in cui si inseriscono, se qualcono ha suggerimenti
ringrazio in anticipo
ciao a tutti
/**/
#include<stdio.h>
#include<stdlib.h>
float media(float *a,int n)
{
int i;
float med;
med=0;
for(i=0;i<=n-1;i++)
{ med=med+a[i]/n;}
return(med);
}
main()
{float *a;
int n,i;
float md;
printf("\t MEDIA ARITMETICA\n");
printf("\n di quanti numeri è la media?\n==>");
scanf("%d",&n);
a=(float*)malloc(n*sizeof(float));
printf("\n bene ora devi inserire i valori di cui vuoi\n calcolare la
media:\n");
for(i=0;i<=n-1;i++)
{ scanf("%f",&a[i]);}
md=media(a,n);
printf("\n ecco qua! la tua media è %.2f\n",md);
system("pause");
}
Newsgroup: it.comp.lang.c
Titolo: HELP: compilare file bison e flex (yacc, lex)

Ho questo problema: ho trovato delle versioni windows di yacc e flex
(bison e flex)
ora vorrei compilare i programmi c che questi producono (lex.yy.c e
simili)
ho provato con il builder della borland e con il visul della microsoft,
ma nonsono riuscito
a compilarli.
Suggerimenti? Non rispondete " usa un altro compilatore "  per piacere.
Con il cc Unix
sono ovviamente riuscito a compilare il tutto.
Ciao Roberto

 Non rispondete " usa un altro compilatore "  per piacere.
  Ehm... :)
  Che errori ti da`? AFAIK, ci sono due ordini di problemi:
l'insofferenza per lo standard dei due compilatori che hai usato e
l'inesistenza di un supporto effettivo per l'output dei programmi di
analisi lessicale e sintattica. In effetti, non ho mai provato una cosa
del genere, quindi se mi dici che difficolta` hai incontrato posso anche
tirar fuori una prognosi... ;)
	Alla prossima,
		Marco

non e' che ti manca la libreria?  per linkare l'output di flex in
genere serve un -lfl...
-- 
Maurizio Loreti                      
http://wwwcdf.pd.infn.it/~loreti/mlo.html
Un. of Padova, Dept. of Physics - Padova, Italy          
lor...@padova.infn.it

 Che errori ti da`?
e.g.
--------------------Configuration: lex.yy - Win32 Debug--------------------
Compiling...
lex.yy.c
lexer.l(18) : error C2065: 'SEP' : undeclared identifier
lexer.l(20) : error C2065: 'GE' : undeclared identifier
[zip]
--------------------------
Temo che l'errore sia una sciocchezza o ppure che non sia proprio possibile
usare
questo compilatore. Nel caso voglia usarne un'altro quale mi consigli?
DJ qualcosa? o semplicemente il gcc?
Grazie
Roberto


no la grammatica generata dal lex e' in C a meno che non stati generando
parser con l'opzione per il C++ ( non ricordo quale flex lo fa )
comunque 
1) nel lex.yy.c ci sono delle #line che fanno riferimento al sorgenre
lex in modo da poter tracciare piu' facilmente gli errori percio' ti
riporta gli errori in questo formato
lexer.l(20) : error C2065: 'GE' : undeclared identifier
inoltre l'errore e' simbolo indefinito
 
Devi, quasi sicuramente far includere il file d'include generato dallo
yacc yy_tab.h che definisce quesi simboli ( facci caso hanno gli stessi
nomi dei simboli terminali del sorgente yacc )
per poter includere questo file devi mettere nel sorgente lex qualcosa
del tipo
%{
#include "yy_tab.h"
%}
come prima dichiarazione
P.S.
se usi il make o altre utility' automatiche per costruire il progetto
ricordati di fare in modo che venga prima 'compilato' il sorgente yacc e
poi il sorgente lex
Marco

Newsgroup: it.comp.lang.c
Titolo: Gestione seriale in C

Salve a tutti, una domanda da novizio:
devo fare un SW in ambiente DOS che gestisce dati dalla porta seriale, mi
potete dare una dritta?
Grazie in anticipo.

 mi potete dare una dritta?
si, chiedi sul newsgroup adatto:
it.comp.programmare.win32 per applicazioni win32 console (italiano)
comp.os.msdos.programmer per msdos 6.22 e precedenti (inglese)
comp.os.msdos.djgpp      per l'omonimo ambiente (inglese)
Newsgroup: it.comp.lang.c
Titolo: file musicali e grafici

Qualcuno mi sa dire se in C (non in C++) è possibile mandare in esecuzione
un file sonoro e visualizzare un immagine a video?
Ciao e grazie!

 un file sonoro e visualizzare un immagine a video?
Be', un file sonoro non si puo' mandare in esecuzione perche'
non e' un eseguibile.
A parte questo certamente si potra' fare quello che chiedi ma
non nel C standard (del quale si occupa questo newsgroup) che
non tratta di grafica o audio.
E' meglio se ti rivolgi ad un gruppo che si occupa del sistema
operativo sul quale stai lavorando (linux,win,mac...).
ciao,
g.

 esecuzione un file sonoro e visualizzare un immagine a video?
 
  Fermo restando quanto ti ha risposto qualcuno riguardo la 
  dipendenza dal S.O., vedi se: 
	     system("Comando da lanciare")
 
  risolve il tuo problema.
-- 
<!--_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
                      The Hacking Pages
 
www.lulli.net
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-->
Newsgroup: it.comp.lang.c
Titolo: Problema con i puntatori! Aiuto!

Ciao a tutti, ho un problema veramente stupido che non riesco a risolvere:
ho un funzione che prende come parametro un pountatore ad una struttura e
che mi restituisce in intero
int myFunz(myStruct *var);
Allinterno della funznione voglio modificare il puntatore in entrata
(inizialmente a NULL) assegnandogli il puntaotre ad un nuovo oggetto creato
dinamicamante:
int myFunz(myStruct *var) {
    myStruct *nuovo = (myStruct *)malloc(sizeof(myStruct);
    // Riempio i campi di nuovo
    .....
    var = nuovo;    //cambio il puntatore var
    return 1;
}
Il punto è che una volta terminata la funzione il puntaotre var non risulta
modificato!!
int main()
{
    myStruct *var = NULL;
    myFunz(var);
    //dopo la chiamata var è ancora NULL!!!!
    return 0;
}
Dove sbaglio?
NB: voglio che il prototipo della funzione myFunz sia esattamente quello che
ho scritto!
Grazie!
Mauro

 Allinterno della funznione voglio modificare il puntatore in entrata
I puntatori sono variabili come tutte le altre, se vuoi modificare,
devi passare l'indirizzo del puntatore (bada bene: non il valore
del puntatore come tu fai, ma l'indirizzo) alla funzione che
modifichera' il valore puntato:
int MyFunc(int **p)
{
    *p = malloc(3*sizeof(int));
}
int main()
{
    int *p = NULL;
    MyFunc(&p);
    return 0;
}
Se ti e' piu' chiaro, intendila in questo modo:
typedef int *int_ptr;
int MyFunc(int_ptr *p)
{
    *p = malloc(3 * sizeof(int));
}
int main()
{
    int_ptr p = NULL;
    MyFunc(&p);
}
--------------------------------
Inviato via 
http://usenet.libero.it

 ho scritto!
   L'erba voglio cresce solo nel giardino del re. Se non hai reale 
necessita` di usare il puntatore alla struttura, ti basta modificare il 
codice come segue (attenzione alle dereferenziazioni in meno):
<code>
	#include <stdio.h>
	#include <stdlib.h>
	#include <string.h>
	struct rec {
	  int  rec_int;
	  char rec_string[16];
	};
	int function(struct rec *);
	int
	main(void)
	{
	  struct rec arec;
	  int        anint;
	  anint=function(&arec);
	  printf(
	    "anint =            %d\n"
	    "arec->rec_int =    %d\n"
	    "arec->rec_string = %s\n",
	    anint,arec.rec_int,arec.rec_string
	  );
	  return 0;
	}
	int
	function(struct rec *r)
	{
	  r->rec_int=42;
	  strcpy(r->rec_string,"Hello world!");
	  return 1;
	}
</code>
-- 
Alla prossima,
Marco
Newsgroup: it.comp.lang.c
Titolo: Lettura file di dati

Ciao,come posso fare per trasformare un file di dati
( tipo i vecchi file di Babylon english.dic )in uno
di testo?


Se intendevi chiedere "come faccio ad ottenere una rappresentazione 
ASCII di un file binario", cerca in rete le codifiche base64 e/o 
quoted-printable (usate con successo nello scambio di messaggi).
Se intendevi altro (chesso`: "come faccio ad estrarre le stringhe lunghe 
almeno tot caratteri ASCII da un file binario?"), sii piu` specifico.
-- 
   |   \    \  | ___|_  |_  | ianezz a casa sua... :-)
   |  _ \  | \ | _|    /   /  Visita il LinuxTrent a
  _|_/  _\_|  _|____|___|___| 
http://www.linuxtrent.it

Newsgroup: it.comp.lang.c
Titolo: Cannot creat pre-compiled header:initialized data in header

Sto provando compilare un simulatore per la tesi scritto in C++ (suppongo
che il discorso vale anche per il C) .... ma non ci riesco
Se nel file che contiene il main metto
#include "miofile.h"
main()
{....}// fine del main
// in main uso ad esempio a, t_min, f....e cosi via    che si trovano in
miofile.h
ed in miofile.h scrivo quanto segue
#define a 1
#define t_min 223
char f='a';
int variabile=2;
#include "c:\mia_directory\altro_mio_file.cpp"
#include "c:\mia_directory\mio_file_numero_2"
.....
il compilatore si incasina??
Se non è questo il motivo cosa devo fare? Devo usare il Target expert??


Prima devi leggere come si usa un file header, poi magari una
ripassatina all'inglese puo' essere utile...
Scherzi a parte, hai messo nel tuo header una instanziazione
di variabili, e per di piu' inizializzate, anziche' solo la
dichiarazione, che dovrebbe (dipende dalle tue intenzioni)
essere qualificata come extern, ovvero:
char f='a';
int variabile=2;
dovrebbe diventare:
extern char f;
extern int variabile;
e nel file CPP ci metti infine le due linee incriminate:
char f='a';
int variabile=2;
Non faccio commenti sulla include di un file cpp da un
header.
Il tuo modo di scrivere e comunque legale, infatti il
messaggio in subject e' una warning, not un error.
Il "pre-compiled header" e' una feature che 'precompila' le
include che metti nei tuoi file c, cpp, per poterla
riutilizzare quando trova la stessa sequenza di include in un
altro file c, cpp del tuo progetto, senza riscandire i
relativi files.
Se non riesce a crearlo , il compilatore non fa altro che
riscandire i files... tutto qui.
HTH, - Andrea
-- 
------------------------------------
arimicci @@ aritaly. com  .~~~.  ))
                (\__/)  .'     )  ))
  Andrea        /o o  \/     .~
      Rimicci  {o_,    \    {
                 / ,  , )    \     .
 * Developer *   `~  '-' \    } ))
C C++ cgi miva  _(    (   )_.'
Java           '---..{____}
OS/2 Warp Server for Ebusiness admin
--------- OS/2 V5 "Phoenix" --------
Newsgroup: it.comp.lang.c
Titolo: Parser di una linea di testo con fscanf

-- 
Salve a tutti , qualcuno mi può
dare informazioni su come fare
da una linea di testo , prelevata con
fscanf , a far leggere solo determinati
caratteri ?
la linea e simile a questa:
1487;18;5;25;39;55;66;69;28
devo scartare il primo numero
e il secondo numero e tutti i puntievirgola.
Come posso fare?
Grazie a tutti ciao

Grazie a tutti ciao
ipotizzo che la stringa termini con '\0'
char c,new_strina[30];
int i=2;	/*partiamo dal terzo carattere*/
while(c!='\0)
	{
	 c=stringa[i];
	 if(c!=';') new_stringa[i-2]=c; 
	 i++;
	}
dovrebbe funzionare.
se devi fare altre cose puoi anche non salvare il tutto in new_stringa,
ma agire direttamente dentro l'if. 
Ciao,
Riccardo

 }
Farei così:
i=0;
while (stringa[i]!= '\0' && stringa[i]!=';')
  i++;//arriva fino al ;
i++;//salta il ;
j=0;//indice di new_stringa
 while(stringa[i]!='\0' )
 {
   if(c!=';') new_stringa[j++]=stringa[i];
   i++;
 }

Newsgroup: it.comp.lang.c
Titolo: una semplicissima linea...help

salve a tutto il NG.
Ma come si fa una semplicissima linea con il turbo c++ 3.0 per dos?
ho copiato l'esempio  seguente della funzione "line" dalla guida:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
void main()
{
   /* request auto detection */
   int gdriver, gmode, errorcode;
   int xmax, ymax;
   /* initialize graphics and local variables */
   initgraph(&gdriver, &gmode, "");
   /* read result of initialization */
   errorcode = graphresult();
   /* an error occurred */
   /*
   if (errorcode != grOk)
   {
   printf("Graphics error: %s\n", grapherrormsg(errorcode));
   printf("Press any key to halt:");
   getch();
   exit(1);
   }
  */
   setcolor(getmaxcolor());
   xmax = getmaxx();
   ymax = getmaxy();
   /* draw a diagonal line */
   line(0, 0, xmax, ymax);
   /* clean up */
   getch();
   closegraph();
}
faccio RUN  e mi appare
BGI Error Graphics not initialized use 'initgraph'
Driver not found (EGAVGA.BGI) ma io ho controllato e in C:\TC\BGI\ esiste
quel file...perche' non lo trova?
Lo devo indicare per caso in qualche percorso?
Ringrazio tutti anticipatamente...
euterpex

mhh...prova a mettere egavga.bgi nella directory del tuo eseguibile. Non
e' il massimo dell'eleganza ma credo che funzioni...
ciao,
Marcello
------------------------------------
take a look at 
http://www.physics.it
------------------------------------

 euterpex
Buona serata a tutti,
Lord Knight

 vabbč... all'inzio puoi farlo ;)
Ora che ha il tuo permesso ... !!!
(riscrivere (copiare) e' un validissimo modo per imparare a mio avviso).
Alex

   int xmax, ymax;
Request auto detection ???  Non mi risulta !
Forse se aggiungi questo...
gdriver = DETECT;
ciao, acc.   
a...@libero.it

 Alex
byez,
Lord Knight
Newsgroup: it.comp.lang.c
Titolo: Immagini in c

Ciao vorrei sapere come impotare le immagini in un programma c e
visualizzarle, inoltre ho visto che gimp permette di salvere le immagini in
c ma purtroppo non sò come farle visualizzare.
Qualcuno ne sà qualcosa??

 wrote:

Lo standard C, argomento di questo NG, non tratta direttamente le 
immagini. Dovresti informarti per la piattaforma che ti interessa e per 
quale libreria vuoi usare. Hai citato Gimp, che ad esempio usa le 
librerie GTK. Dai un occhio su internet, cmq il post qui diventa ot, ti 
consiglio di spostarti su it.comp.os.linux.development
Ciao
Wezzy

Newsgroup: it.comp.lang.c
Titolo: File Wave in C

Ciao, sono nuova e spero di non aver sbagliato news.
Ho un problema, vorrei scrivere un programma in C che mi permetta di fare il
playing di un file .wav sotto il S.O. Windows 98.
Ho provato ad utilizzare la funzione "playsound" ma mi dà il seguente
errore.
Compiling...
Sound.c
c:\programmi\microsoft visual studio\vc98\include\mmsystem.h(113) : error
C2146: syntax error : missing ';' before identifier 'MMVERSION'
c:\programmi\microsoft visual studio\vc98\include\mmsystem.h(113) : fatal
error C1004: unexpected end of file found
Error executing cl.exe.
Sound.exe - 2 error(s), 0 warning(s)
Non dipende dal mio programma, poichè senza la funzione playsound, funziona
correttamente. Come libreria ho incluso sia "windows.h" che "mmsystem.h".
Cosa devo fare?
Vi ringrazio anticipatamente.

playing di un file .wav sotto il S.O. Windows 98.
it.comp.programmare.win32
Li ti sapranno rispondere :)
Mox

 wrote in message
iOlaPKObAwzOVb...@4ax.com...

Newsgroup: it.comp.lang.c
Titolo: Crlscr....dov'è?

Salve a tutti,  premetto che di C conosco troppo poco ma sto cercando di
imparare.
Ok detto questo, io prima utilizzavo Turbo C per compilare i miei sorgenti
ma ora sono passato per forza di cose a Visual C++ 6.....lo so ke è un
pianeta di differenza ma che c posso fare?
Ad ogni modo io ero abituato ad utilizzare clrscr(); per pulire lo schermo
richiamandola da conio.h se non im sbaglio, ma da quando sono in VC++ non
trova questa funzione da nessuna parte....dov'è finita??
E se non esiste, come faccio a pulire lo schermo?
Grazie a tutti.

 E se non esiste, come faccio a pulire lo schermo?
void clrscr( void ) {
   int num_rows = 50;
   for( ; num_rows; --num_rows )
       printf( "\n" );
};
Cia'
Azathot

 E se non esiste, come faccio a pulire lo schermo?
Metodo abbastanza brutale:
	#include <stdlib.h>
	#define clrscr()	system("cls")
E poi usi 'clrscr();' come eri abituato.
+++
A questa domanda viene data risposta periodicamente sul gruppo. La
prossima volta, ti consiglio di cercare su:
 
http://groups.google.com/advanced_group_search
Per vedere se esistono già delle risposte; se ci sono, le trovarai
più velocemente.
Ciao,
 Emmanuele.
-- 
Emmanuele Bassi (Zefram)              [ 
http://digilander.iol.it/ebassi/
 ]
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4

 E poi usi 'clrscr();' come eri abituato.
% uname -a
Linux asterix 2.4.4-2.1 #24 SMP Sun Dec 22 01:38:37 CET 2002 i686 unknown
% cat dummy.c << EOT
#include <stdlib.h>
#define clrscr()        system("cls")
int main(void)
{
        clrscr();
        return 0;
}
EOT
% cc dummy.c -o dummy
% ./dummy
sh: cls: command not found
Che spaglio ho fatto?
Auguri, Claudio.

 E se non esiste, come faccio a pulire lo schermo?
Non esiste un modo portable. Usa una funzione dal (dello (?)*) tuo OS.
Auguri, Claudio.
(*) Italiano e' veramente ficile. Puh.


Il mio Terminale ha piu di 50 "rows".
% echo $LINES
62
Come lo faccio, se non so con quanti linie lavoro?
Auguri, Claudio.

 [2003-01-29 23:35]:
Ho letto gli altri tuoi articoli nel thread: mangiato pesante o
svegliato male? :-)
È stato scritto che è un modo non portabile. Chi vuole usarlo sarà
costretto, in un modo o nell'altro, a curarsene. A quel punto, dovrà
chiedere su un gruppo nella gerarchia corretta (win32, linux, os2,
vattelapesca).
O a usare Google, che fa sempre bene. :-)


 #define clrscr()        system("cls")
#define clrscr()	system("clear")
+++
Okay, soluzione "portabile" (usando il GCC):
	#include <stdlib.h>
	#ifdef __UNIX__
	# define clrscr()	system("clear")
	#else
	# ifdef __WIN32__
	#  define clrscr()	system("cls")
	# else /* Unimplemented
	#  define clrscr()
	#endif
E poi compili con la giusta opzione -D
	(Unix)	gcc -D__UNIX__ ...
	(Win32)	gcc -D__WIN32__ ...


 Come lo faccio, se non so con quanti linie lavoro?
Soluzione 1: lo fai lavorare a 50 righe.
Soluzione 2:
/* Valida per sistemi conformi a: SVID 3, POSIX, BSD 4.3, ISO 9899 */
int how_may_rows( void ) {
   return atoi( getenv( "LINES" ) );
}
Cia'
Azathot
Newsgroup: it.comp.lang.c
Titolo: scrivere un driver

salve a tutti!
 dato un lettore di impronte digitali USB....dovendo scrivere un driver per 
controllarlo o meglio per catture la sua uscita....
da dove devo cominciare??!?  :(
in pratica a me serve solo intercettare cio che invia alla porta usb 
(ammesso che il dispositivo invii un continuo flusso di dati)
grazie!
ciao 


Il tutto su che OS ?

 ha scritto nel messaggio 
news:43a1f5e3$0$16210$4faf...@reader3.news.tin.it...

giustamente!...su windows 2000 XP(home-Pro) 

 giustamente!...su windows 2000 XP(home-Pro) 
Allora prova su it.comp.programmare.win32

Newsgroup: it.comp.lang.c
Titolo: Come stampare su LPT2 ?

ciao a tutti ,
per stampare uso la funzione fprintf(stdprn,ecc..) che accede a LPT1 .
Sul mio Pc ho installato una seconda stampante sulla porta LPT2 . Se
volessi  utilizzare questa nuova stampante come dovrei operare ?
P.S.
Ho provato scambiando gli indirizzi delle porte presenti in memoria
bassa del Bios e sembra funzionare ma e' questa la soluzione migliore
?   
~~~~~~~~~~~~~~~~~
MAINARDI Gianfranco
Burago di Molgora (MI)
Italia
Email : 
main...@rete039.it
ICQ# number : 31334916
~~~~~~~~~~~~~~~~~

 volessi  utilizzare questa nuova stampante come dovrei operare ?
FILE *prn2 = fopen( "LPT2", "w" );
fprintf(prn2,ecc..);
EMG

Newsgroup: it.comp.lang.c
Titolo: [FAQ]-Dove trovare quelle di it.comp.lang.c?

Ciao a tutti, ho cercato a lungo con google ma non ho trovato altro che 
questo broken link: 
http://www.programmazione.it/linguaggi/c/lang_faq.htm
Mi sapreste indicare dove trovare le FAQ di questo newsgroup?
	ciao e grazie, rz
--
http://mrzac.altervista.org

 Mi sapreste indicare dove trovare le FAQ di questo newsgroup?
Non credo che esistano...
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Newsgroup: it.comp.lang.c
Titolo: auto_ptr array[]

 Ho un dubbio sugli auto_ptr: 
it.comp.lang.c++
Hint: non e` un bug del compilatore.
Luca
-- 
Home: 
http://kronoz.cjb.net
La mia opinione puo` essere cambiata, ma non il fatto che ho ragione.

 Hint: non e` un bug del compilatore.
Ops, ci ho messo una negazione che non ci voleva...
Luca
-- 
Home: 
http://kronoz.cjb.net
Non capisco tutta questa eccitazione per il Multitasking: 
io sono anni che leggo in bagno.
Newsgroup: it.comp.lang.c
Titolo: binario rovesciato

Per favore, chi mi puņ aiutare?!
Ho approntato questo piccolo programmino  per rovesciare i numeri binari,
senza usare gli array (credo un problema per molti studenti!). Funziona bene
per numeri di questo genere: 12345 --->54321, ma non per 01011 che mi da
1101 perché??? Sono curioso di vederlo girare bene!
Grazie Karl
#include<stdio.h>
main()
{
int n, unita, decine, cdm,e;
e=10;
printf("Introduci un numero binario rovesciato: ");
scanf("%d", &n);
unita = n % 10;
decine=(n/10)%10;
printf("%d",unita);
printf("%d",decine);
              while(cdm!=1)
                        {
                        e=e*10;
                        cdm = (n/e) % 10;
                        printf("%d",cdm);
                        }
}

 senza usare gli array 
io tempo fa ho trovato questa macro:
#define reverse(n,b) \
	n = ((n >> 1) & 0x55555555) | ((n << 1) & 0xaaaaaaaa); \
	n = ((n >> 2) & 0x33333333) | ((n << 2) & 0xcccccccc); \
	n = ((n >> 4) & 0x0f0f0f0f) | ((n << 4) & 0xf0f0f0f0); \
	n = ((n >> 8) & 0x00ff00ff) | ((n << 8) & 0xff00ff00); \
	n = ((n >> 16) & 0x0000ffff) | ((n << 16) & 0xffff0000);
Dovrebbe funzionare, provala.

Newsgroup: it.comp.lang.c
Titolo: [OT] che desolazione... :(

Questo ng sta diventando sempre meno frequentato, sempre piu' pieno di
off topic...
...che desolazione...

Andrea Laforgia wrote:

Concordo! Toccherebbe risollevare il livello delle discussioni,ed essere
meno tolleranti ai post OFF TOPIC
Ivan

 ...che desolazione...
Penso che sia dovuto al fatto che il C va poco di moda tra la gente
che impara a programmare, e quindi si vedono sempre meno "Come faccio
a fare questo? E quest'altro?"...
-- 
 Ciao, Bianco.
 Reply to luca.bianco (at) 
tiscalinet.it

Newsgroup: it.comp.lang.c
Titolo: cercasi libro usato

Cercasi:
Titolo Linguaggio C
Autore Kernighan Brian W.; Ritchie Dennis M.
naturalmente in Italiano
ciao a tutti, Fabio Pezzoni
--
Lil...@G3informatica.it

 naturalmente in Italiano
Pensi veramente che qualcuno qua dentro ti venda la "bibbia"?!?! ;-)
Fossi in te lo cercherei nuovo, costa solo 46.000 lire.
-- 
 Ciao, Bianco.
 Reply to luca.bianco (at) 
tiscalinet.it
Newsgroup: it.comp.lang.c
Titolo: [Gettext] modificare i sorgenti a partire da un file po

 mingw32-make -f makefile.g32 
che scavalca (credo) la localizzazione.
Ora (ho già provato), se prima di compilare, modifico i file sorgenti 
`.c' contenuti in \src sostituendo le stringhe da inglese in italiano, 
poi il file slrn.exe viene in italiano (sono parecchie, la prova l'ho 
fatta solo su alcune stringhe).
Mi servirebbe insomma l'opposto del comando *msgen*, dove come input do 
i vari file `.c' ed il file `it.po', come uscita avrei gli stessi file 
`.c' ma con le stringhe in italiano.
Sono matto? :)
Ciao e grazie.
XPost: it.comp.lang.c,it.comp.lang.c++
Fup2: it.comp.lang.c
-- 
 /   _ _ | Navigare necesse est, vivere non est necesse  -- Pompeo
( (/( (/ | Concepción, Victoria, Sant'Antonio, Trinidad, Sant Jago

 che scavalca (credo) la localizzazione.
Sei OT. E il l'internazionalizzazione viene fatta runtime.
LC_ALL=it_IT slrn
Poi vedi locale(1) e locale(7).
Luca
-- 
Regole per la felicit?:
1. Sii soddisfatto di quello che hai.
2. Assicurati di avere tutto.

 Poi vedi locale(1) e locale(7).
Grazie (non ho capito un apascio ma cercherò di approndire, al limite 
mi faccio uno script con un qualche linguaggio a me più abbordabile).
Ciao (sublimo).

Newsgroup: it.comp.lang.c
Titolo: Domanda?

Re all...
vorrei avere il parere di alcuni di voi, ho appena iniziato a studiare il C,
girovagando per la rete mi sono scaricato dei manuali, ma non è che sono il
massimo, poi ho trovato un manuale di nome "Trichy C" che mi sembra
abbastanza fatto bene, qualcuno cosa mi sa dire di questo nominato? Per un
principiante vadi bene o ci vuole qualcos'altro?
Grazie per coloro che risponderanno,
ciao.

 prima di tutto un corso di lingua italiana
No, quello non serve! ;-) Ancora di piu' se invece di studiare su di un
libro italiano studiasse su di uno in inglese....
Tommy

 wrote


La risposta e' per "Giuseppe Macario". Purtroppo il suo post non sembra
piu' accessibile
A giudicare dal nick, magari l'inglese non gli serve perche' e' di
madrelingua.
Non e' carino prendere per culo qualcuno perche' sbaglia con l'italiano,
cosa diresti se venissi preso in giro su un NG inglese?
Magari una ripassatina alla netiquette...
http://www.in.on.ca/tutorial/netiquette11.html
C:\>iao Angelo
P.S. Nel caso ti sfuggisa qualcosa, prova a chiedere a Trevor...
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Non e' carino prendere per culo qualcuno perche' sbaglia con l'italiano,
O semplicemente perché, magari, ha sbagliato a battere una "o"
sconfinando nel tasto accanto (la "i", per l'appunto).
In ogni caso, per Trevor: il manuale di cui parli è pessimo.
-- 
Andrea Laforgia
#exclude <windows.h>

 sconfinando nel tasto accanto (la "i", per l'appunto).
Ben detto.
angato. Dai prendimi per il culo divertiti ho sbagliato a digitare.
eccone un altra sbaglito vai anche questa.
contento tu
saluti

 dimmi il message-id e provo a ripostartelo.
:-? Ti perdi un in thread con 4 articoli di cui solo uno era tuo?
C:\>iao Angelo
P.S. Il tuo articolo l'ho letto tramite mailgate, ma non mi ha consentito
     di rispondere.

Newsgroup: it.comp.lang.c
Titolo: PIC e C

Ho costruito il voltmetro il cui progetto si trova qui':
http://www.coolcircuit.com/project/meter/index.html
dopo varie peripezie hardware per correggere gli errori
(mi sa proprio che l'autore non era molto presente quando ha disegnato
lo
schema, che probabilmente non corrisponde al prototipo funzionante che
ha
fotografato),ho inserito il PRG nel PIC ed ho ottenuto come risultato
la sola accensione dei tre segmenti g che corrispondono a tre righe ---
e non si schioda mai di li.
E' quindi probabile che gli errori hardware siano ripetuti anche nel
software, per questo motivo gradirei che si controllasse il listato
del programma che si trova in fondo alla pagina sopra indicata.
Purtroppo la programmazione non e' il mio forte e di C non ne capisco
niente, riesco solo a pasticciare un po' con il Basic.
Ho gia' postato la richiesta su it.hobby.elettronica che il NG che
frequento assiduamente, ma non ho trovato nessuno che voglia o possa
aiutarmi, spero di aver maggior fortuna qui' dato che, se si riesce a
far funzionare il voltmetro, e' mia intenzione condividere lo schema
elettrico modificato da me nonche' il disegno del circuito stampato.
Ciao e grazie
                        Celso

Celsius ha scritto:

Se fossi al tuo posto prenderei spunto dallo schema elettrico per
ridisegnarne uno nuovo per poi riscrivere il codice (nel linguaggio che mi
č + congeniale) in base al mio circuito... č sicuramente + veloce che
meteersi a cercare l' errore in un circuitino del genere...
Bye Dave.

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

Salve,
ma un sito dove poter trovare la maggior parte delle funzioni ANSI, Borland,
Microsoft e di sistema... esiste?
magari con spiegazioni... oppure bisogna smazzarsi x forza tutti gli header?
tnx

 Borland, Microsoft e di sistema... esiste?
Per l'ISO C:
http://std.dkuug.dk/JTC1/SC22/WG14/www/docs/n897.pdf
e` l'ultimo draft prima della  stesura dello standard definitivo (quello
si paga).
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Sono un mirabile incrocio tra Tarzan e Giacomo Leopardi.
In me convivono tutte le doti intelluttuali di Tarzan e
tutta la prestanza fisica di Giacomo Leopardi.
A. Borsani

 ha scritto nel messaggio
news:a3u8pi$320$2...@dreamland.darkstar.net...

Newsgroup: it.comp.lang.c
Titolo: fopen file con estensione

Non riesco ad aprire i file con estensione qualsiasi con la funzione
fopen. Ecco il codice, qualcuno sa dirmi dove' il bug?
#include <stdio.h>
int main(int argc, char *argv[])
{ 
  char *filename;
  FILE* filestream;   
  printf("File to read? ");
  scanf("%s",filename);
  filestream = fopen(filename,"r");
  if (filestream==NULL) printf("Cannot open file!\n");
  	else printf("File open ok!\n");
  fclose(filestream);     
}


1) Stai usando scanf con un char* al quale non corrisponde alcuno spazio
    allocato.
2) Stai usando scanf senza dare un limite alla lunghezza della stringa
    da leggere.
Possibile correzione:
#include <stdio.h>
#define BUF_SIZE 128   /* un valore piu' o meno casuale... poi fai tu */
int main(void)         /* tanto argc e argv non li usi */
{
   char filename[BUF_SIZE];
   FILE* filestream;
   printf("File to read? ");
   fgets(filename, BUF_SIZE, stdin);
   filestream = fopen(filename,"r");
   if (filestream==NULL) {
     printf("Cannot open file!\n");
   } else {
     printf("File open ok!\n");
     fclose(filestream); /* se il file non e' stato aperto non devi */
   }                     /* chiuderlo */
   return 0;             /* dato che main() e' di tipo int, deve */
}                       /* ritornare un valore */

 #define BUF_SIZE 128   /* un valore piu' o meno casuale... poi fai tu */
Meglio ancora: invece del mio BUF_SIZE usa la macro FILENAME_MAX 
definita in <stdio.h>, e' la lunghezza massima per un nome di file che 
la tua implementazione garantisce di poter aprire.

Ho dimenticato di eliminare lo '\n' dalla stringa letta e il controllo 
del valore di ritorno di fgets():
#include <stdio.h>
#include <string.h>
int main(void)         /* tanto argc e argv non li usi */
{
     char filename[FILENAME_MAX];
     FILE* filestream;
     printf("File to read? ");
     fgets(filename, FILENAME_MAX, stdin);
     if (filename != NULL) {
         filename[strlen(filename) - 1] = '\0';
         filestream = fopen(filename,"r");
         if (filestream == NULL) {
             printf("Cannot open file!\n");
         } else {
             printf("File open ok!\n");
             fclose(filestream); /* se il file non e' stato aperto */
         }                       /* non devi chiuderlo */

Newsgroup: it.comp.lang.c
Titolo: Reboot del PC con un programma scritto in C/C++

Ciao,
devo scrivere una routine in un programma C per riavviare un PC con WIN98. 
Ho trovato questa pezzo di codice ma nn va.
#define MAGIC           0               /* for cold restart */
/* #define MAGIC           0x1234          /* for warm restart */
#define BOOT_SEG 0xffffL
#define BOOT_OFF 0x0000L
#define BOOT_ADR ((BOOT_SEG << 16) | BOOT_OFF)
#define DOS_SEG  0x0040L
#define RESET_FLAG 0x0072L
#define RESET_ADR ((DOS_SEG << 16) | RESET_FLAG)
main()
{
 void ((far *fp)()) = (void (far *)()) BOOT_ADR;
 *(int far *)RESET_ADR = MAGIC;
 (*fp)();
}

/* #define MAGIC           0x1234          /* for warm restart */
C'è un /* di troppo

Ciao,

Forse in modalità protetta, quelle aree di memoria sono inaccessibili.
Dovresti creare un vxd.

Antonio ha scritto:

In win98 riavviare la macchina è un bel casino.
Sotto winxp non si può utilizzare il comando shutdown?

A parte che come ti hanno segnalato c'e' un /* di troppo, secondo me ti 
conviene fare una chiamata diversa... prova:
C:\WINDOWS\RUNDLL32.EXE shell32.dll,SHExitWindowsEx 1 
Ciaoz.


Newsgroup: it.comp.lang.c
Titolo: maneggiare numeri

Ciao, ho un piccolo problema.
In un file (prima.ascii) vado a leggere una tabella di cifre nella seguente
maniera
234519.9 -014106
124432.5 +560901
..... ..........
poi le vorrei riscrivere in un altro file (dopo.ascii) nella seguente
maniera
23 45 19.9 -01 41 06
12 44 32.5 +56 09 01
...... ..........
Come posso fare per ottenere ciň?
(il mio problema non č come leggere o scrivere un file, ma come fare a
scrivere il file che leggo nella maniera che voglio ...)
Grazie mille!
Ciao
--------------------------------
Inviato via 
http://usenet.libero.it

 Come posso fare per ottenere ciň?
Possibile algoritmo:
i=0;
c=0;
while((c=leggicarattere)!=EOF){
swhitch(carattere) {
	case '.': scrivi '.';
		i=1;
		break;
	case ' ' :
		scrivi ' '
		break;
	case '+'
		scrivi carattere
	case '-':
		scrivi carattere
	case '\n':
		scrivi carattere
		i=0;
	default:
		if(i<2) {scrivi carattere; i++;}
		else {scrivi ' '; scrivi carattere; i=1}
	}
}
Non l'ho testato, ma dovrebbe funzionare
-- 
-=Riccardo Galli=-
 _,e.
s~  ``
 ~@.   ideralis Programs
.   ol 
 `**~  
http://www.sideralis.net

[...]
prova in questo modo.
int main (void){
float  num1,num2;
File *fp1,*fp2;
if((fp1=fopen("ascii.txt","r"))==NULL){printf("IL FILE NON ESISTE ;
CIAO\n");return;}
fp2=fopen("ascii.dat","a");
while(!feof(fp1)){
fscanf(fp1,"%f %f \n",&num1,&num2)
fprintf(fp2,"%f %f \n",num1,num2)}
fflush(fp12);fflush(fp2);
fclose(fp1),fclose(fp2);}