mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: R: R: Dov'è l'errore?

Resta comunque qualche problemino (magari solo mio...):
  se faccio due assegnamenti di quel tipo, controllando ogni volta
l'indirizzo
  a cui punta il puntatore, questo risulta cambiato.
  Da quanto ho capito, quindi sono state allocate due diverse aree di
memoria,
  non modificabili. Per cui, dopo il secondo assegnamnto, cosa succede alla
  prima zona? Viene deallocata?
se dichiaro char *uno e poi faccio:
uno = "Ivan"    cosa succede?
uno = puntatore a char;"Ivan" = char array[5];Dove e' situato "Ivan"?
Ti sei mai chiesto quando fai una printf esempio: printf
("Nome%s\n,"...... ),dove viene 
allocata la stringa "Nome %s\n" ?
Quando il compilatore esegue la compilazione mette queste stringhe  nel
segmento dei 
dati, ed in fase di esecuzione si riferisce ad essi tramite il loro
indirizzo,poiche' trattasi di 
array di char come quelli dicharati da programma.
Quindi in : uno = "Ivan", "Ivan" decade nel suo puntatore.
Vedrai che se riesegui dopo la stessa istruzione 
uno = "Ivan" e vedi il valore del puntatore,osserverai che  e' diverso
dal precedente in 
quanto il compilatore alloca di nuovo un'array "Ivan" in una posizione
diversa della 
memoria,salvo otimizzazione varie.
  Poi mi sembra strana questa affermazione:
  "Se faccio uno = "uno","uno" viene allocato dal compilatore tra i dati
  costanti.
  Quindi assegnando ad uno la stringa "uno" non faccio altro che
assegnargli
  un
  puntatore di tipo const"
  Ma se il puntatore  non è stato dichiarato come puntatore a const, non
può
  puntare ad una zona allocata come costante, o no?
Forse mi sono espresso male.
Con const non mi riferivo alla zona,ma all' array "uno",che e' un lvalue
non modificabile,e il 
cui indirizzo non puo' essere cambiato in quanto trattasi di array e non
di puntatore.
--
Posted from 
mta02-acc.tin.it
 [212.216.176.33]
via Mailgate.ORG Server - 
http://www.mailgate.org

 memoria,salvo otimizzazione varie.
Il seguente programmino mostra che questo non è vero (almeno con il
DJGPP):
#include <stdio.h>
void pippo()
{
    char *p = "Prova";
    printf( "%ld\n", ( long ) p );
}
int main()
{
    printf( "%s\n", ( char * ) 5480 );
    pippo();
    pippo();
    return 0;
}
L'output è il seguente:
Prova
5480
5480
Come vedi ha stampato "Prova" addirittura prima che venisse chiamata la
funzione pippo(). Questo significa che la stringa stessa è stata
allocata staticamente all'inizio del programma.
EMG

 EMG
  Veramente e' quello che ho detto anche io,ossia che la stringa viene
allocata dal        compilatore nel segmento dei dati e ci resta fino alla
fine del programma.
Soltanto che ho specificato che se faccio:
#include <stdio.h>
void pippo()
{
    char *p;
    p = "Prova";
    printf( "%ld\n", ( long ) p );
    p = "Prova";
    printf( "%ld\n", ( long ) p );
}
int main()
{
    printf( "%s\n", ( char * ) 5480 );
    pippo();
    pippo();
    return 0;
}
la stringa "Prova" viene allocata 2 volte nel segmento dei dati,con 2
indirizzi differenti,salvo ottimizzazioni varie.
Ivan Molella

   Veramente e' quello che ho detto anche io,
Pardon. Allora avevo capito male.
EMG

Grazie a tutti e due per i chiarimenti!
Marco Iannaccone
Newsgroup: it.comp.lang.c
Titolo: Nessuno programma C per micro?!?

Come da oggetto...
ma come mai nessuno ne parla,
pensavo fosse una cosa molto comune.
Forse ho sbagliato NG!?!
--

 ha scritto nel messaggio
news:b2hbn7$1d2ioh$1...@ID-71026.news.dfncis.de...


 wrote in message
news:b2hbn7$1d2ioh$
1...@ID-71026.news.dfncis.de

Ehm io si, come vedi da un mio msg precedente...Cosa volevi chiedere ?
Ciao
Enrico
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c
Titolo: gestire i dischi in c

avrei una domanda da farvi: come faccio a gestire l'evento che avverte
la mancanza del dischetto nell'unità?
Cioè il mio programma se cerca di scrivere su una unità in cui manca il
disco viene interrotto dal DOS (ver 6.2) che mi dice che manca il disco
Annulla, Riprova o Tralascia.
Vorrei fare in modo di catturare questo evento e farlo gestire dal mio
programma senza che intervenga il DOS, ma non sono riuscioto a trovare
informazioni in merito.
Io uso Borlandc ver. 3.1.
Grazie a tutti
Stefano

 la mancanza del dischetto nell'unitą?
Puoi utilizzare, ad esempio, la funzione non standard biosdisk().
EMG

> Vorrei fare in modo di catturare questo evento e farlo gestire dal mio
Devi catturare l'interrupt semmai.
Non è una cosa così immediata.
Se ti occorre, ho del "vecchio" codice che dovrebbe fare anche quello che ti
serve.
Scrivimi su E-mail
--
Alessandro Monti

Annulla, Riprova o Tralascia.
Devi chiamare l'int 13h (accesso diretto al disco) invece degli interrupt
del DOS (21h e dintorni).
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
ICQ: 42227764
---------------------------------------------------------------------------


~~~~~~~~~~~~~~~~~
MAINARDI Gianfranco
Burago di Molgora (MI)
Italia
Email : 
main...@rete039.it
ICQ# number : 31334916
~~~~~~~~~~~~~~~~~

Grazie davvero a tutti.
Stefano

Devi usare l'INT 24h (è un indirizzo far che contiene l'indirizzo della
procedura di gestione egli errori critici, ovvero c'è un doppio puntatore:
la tabella degli interrupt alla posizione 24h (moltiplicata per 4) contiene
il puntatore al puntatore della procedura).
Tu devi intercettare questo INT, mettendo al posto della routine originale
l'indirizzo della tua (e magari conservando quello originale).
Purtoppo il codice non lo trovo, ma ti passo le informazioni:
la procedura viene chiamata con il bit 7 a zero se il problema è di I/O di
disco, BP:SI punta all'header del control block del dispositivo che ha
causato l'errore (puoi ignorarlo)
Devi preservare i registri SS, SP, DS, ES, BX, CX, DX
Nel byte basso di DI c'è il codice d'errore, quello che interessa a te è il
valore 2 (drive not ready), per gli altri puoi chiamare la procedura
originale.
Devi ritornare un codice in AL:.
0: Ignora (credo sia quello che interessa a te)
1: retry
2: Abort
3: (dos 3 e forse anche i successivi) blocco del sistema
Ovviamente la procedura deve essere dichiarata interrupt (o qualche altra
parola chiave)
--
Alessandro Monti
Newsgroup: it.comp.lang.c
Titolo: DJGPP E LE FUNZIONI INTERRUPT!

Nel buon vero C/C++ esisteva il modo di definire una funzione come
interrupt in questo mododo :
void interrupt my_function(void)
{
......
};
Il DJGPP purtroppo nen ne vuole sapere!
Come faccio a definire una funzione del genere!
Grazie anticipatamente a chiunque riuscisse a darmi una mano!
Ciao da ARTHUR!

 Come faccio a definire una funzione del genere!
Mi dispiace, non ne ho idea.
EMG

Il DJGPP lavora in modalita' protetta quindi le cose si complicano, e
di molto!
Prima di tutto devi lockare tutta la memoria riguardante la funzione
(variabili e codice) e quindi installarla come procedura di interrupt:
ovviamente tutto questo devi farlo attraverso chiamate al DPMI.
Cmq, se non sbaglio sulla FAQ del DJGPP dovrebbe esserci la
spiegazione, altrimenti guarda il sorgente dell'Allegro.
Ciao
RSte

Newsgroup: it.comp.lang.c
Titolo: Pulisci schermo

Xcaso in C esiste qualche funzione simile al ClrScr del Pascal o al Cls del
Dos che alla fine ripulisca lo schermo dalle scritte precedenti?
Grazie.

 wrote in message
6xC88.38349$nI1.1...@twister1.libero.it...


Grazie.
Ci sono fondamentalmente 3 metodi:
1) incochi la sunzione system (inclusa in stdlib.h) e come parametro
usi
  a) clear -  se sei sotto unis
  b) cls   -  se sei sotto dos
2) usi una libreria per gestire il terminale (per es. conio sotto dos,
ncurses sotto unix) e usi le funzioni apposta di quelle libreria
3) lavori direttamente sul terminale con una particolare sequenza di
escape.
Mox

 Ciao
No...non é standard...appartiene infatti alla libreria conio della borland
(esiste anche per djgpp).

Newsgroup: it.comp.lang.c
Titolo: assegnare un nome variabile ad una variabile

Salve a tutti
C'e' un modo in C per assegnare alle variabili un nome variabile ?
mi spiego meglio con un esempio:
facciamo che io abbia un ciclo,
for(i=0;i<=1000;i++)
{
[...]
}
al suo interno mi interessa avere la dichiarazione delle variabili:
int x0:
int x1;
int x2;
int x3;
...
...
int x1000;
esiste un qualche modo ?
grazie
Ciao
	MaX

 int x0: int x1; int x2; int x3;
No, perche' il compilatore lavora a tempo di compilazione e non
a tempo di esecuzione. Se vuoi dichiarare nuovi nomi a tempo di 
esecuzione bisogna che tu ti rivolga ad altri linguaggi.
Comunque per fare cose di quel tipo ci sono i vettori.
Invece di fare milleuna dichiarazioni fai una sola dichiarazione:
int x[1001];
e hai cosi i nomi x[0], x[1], x[2],...., x[1000].
Con il vantaggio che puoi usare indici per indicare la variabile che ti
interessa e scrivere ad esempio
for (i=0; i<1001; i++) x[i]=i*i;
Ciao,
g.
Newsgroup: it.comp.lang.c
Titolo: Chi mi da una mano?

Allora sto cercando un tutorial oppure un documento
che mi spieghi questo:
Quello che voglio fare e scrivere su un file ad esempio una struttura
contenente vari dati per poi ritirarli fuori dopo aver letto
il file,mi spiego meglio,faccio un caso molto semplice,ho una struttura
che contiene alcuni campi,indirizzo,telefono ecc di varie persone
a questo punto voglio caricare il file che ho precedente registrato
e poterli ritrovare.
Grazie in anticipo per l'aiuto.
Ciao.


Scusa potresti essere piu' preciso?
Non e' che abbia capito bene: devi scrivere su un file?
In qualunque manuale c'e' scritto , ma forse non ho capito.
Penso di poterti dare una mano se mi schiarisci le idee.
massi
-- 
 Massimo Narizzano          laureando in Ingegneria Informatica         
===============================================================                
(DIST)- University of Genova       phone: +39.(0)10.353-2811
 Viale Causa 13,                   E-mail: 
m...@mrg.dist.unige.it
 
 16145 Genova, ITALY
=================================================================
                     Non credete nei miracoli.....
                       contateci ciecamente.
Newsgroup: it.comp.lang.c
Titolo: Prelevo i caratteri da una "char", ma come li riscrivo in un'altra?

In questo esempio:
char data[9];
 _strdate(data);
 fdatasis  =fopen("giorno","w");
 id= 0;    while (data[id] )  {     if (id >2 && id<5)
fprintf(fdatasis,"%c",data[id] );  id++; }
estraggo i caratteri che voglio da una "char" ma sono costretto a scriverli
su un file  chiuderlo e riaprirlo per riprenderli  come "Char". Se uso
"sprintf "  scrive solo un carattere (nella "char"), ogni volta cancellando
i precedenti.
Domanda:
Come posso scriverli aggiungendoli ad una "char" come avviene con "fprintf"
nei file?
Ringrazio anticipatamente.
( Perdonate la scrittura non ortodossa. )
Fulvio.

,

Non sono sicuro di aver capito....
Intendi come copiare dei caratteri da un array di caratteri ad un altro
("da una char all'altra?")?
Il sistema piu' semplice e' utilizzare le funzioni della libreria
standard string.h (strcpy o strncpy).
Se proprio non lo vuoi fare puoi usare un codice del genere:
char origine[9], destinazione[9];
int i;
for (i=0; i<10; i++)
  destinazione[i] = origine[i];
Comunque probabilmente non ho capito il problema: mi sembra assurdo che
tu sappia come utilizzare i file e non sappia come si usano gli array.
boh, misteri della didattica moderna.... :)
Un saluto
  Lucio
--
(
  Lucio Benfante
 
http://www.dei.unipd.it/~benfante
                                          )
Sent via Deja.com 
http://www.deja.com/
Share what you know. Learn what you don't.

you wrote :
#Come posso scriverli aggiungendoli ad una "char" come avviene con "fprintf"
#nei file?
Dal tuo messaggio non e' proprio chiaro che cosa tu voglia fare, ma se
la tua intenzione e' quella di concatenare i caratteri in un char, uno
dopo l'altro, come fa fprintf() in un file, allora puoi usare una
funzione del genere :
void concat_char( char * s, char c )
{
     while (*s++) ;
     *(s-1) = c ;
     *s = '\0' ;
}
Andrea Laforgia        (
andrea_...@bigfoot.com
)
----------------------------------------------------
There is nothing better for understanding a kangaroo
than seeing it jump.
----------------------------------------------------

 wrote in message
3792b02...@diesel.cu.mi.it...


con "fprintf"

Newsgroup: it.comp.lang.c
Titolo: Funzioni standard

Ciao raga,
a seguito di alcuni problemi vorrei chiedere se l'header di libreria io.h
sia standard o no? In caso contrario mi sapreste dire quale potrebbe essere
una funzione che mi possa sostituire la creat().


wrote:

No.
L'io.h non e' assolutamente standard.
Purtroppo non so come aiutarti, pero'.
Igor Rossetti

una funzione che mi possa sostituire la creat().
Cosa fa la creat()?
Lanugo

Fonte BorlandC:
-
int creat(const char *path, int amode);
creat and _create both create a new file (or prepare to rewrite an existing
file) given by path.
The file is always opened in binary mode, for both reading and writing.
Upon successful file creation, the file pointer is set to the beginning of
the file.
If the file already exists, its size is reset to 0. (This is essentially the
same as deleting the file and creating a new file with the same name.)
-
quindi creado che una bella:
FILE *fopen(const char *filename, const char *mode);
in modo binary
possa andar bene.
purtroppo non e' uguale il valore di ritorno che e' puntatore a FILE e non
il numero del file handle, dovrai rivedere anche tutte le funzioni che usano
quel file.
esiste anche
int fileno(FILE *stream);
per restituirti l'handle di un FILE, ma non e' ANSI standard nemmeno questa
ciao
donCiccio


ha scritto:

creat() e' posix ma non ansi.
Per fare quello che ti serve potresti usare: fopen(), che pero' torna un
FILE* e non un int.
#include <stdio.h>
FILE *fopen(const char *filename, const char *mode);
Description
This function opens a stream corresponding to the named filename with the
given mode. The mode can be one of the following: 
[...]
w 
Create a new file (or truncate an existing file) and open it for writing. 
[...]
Return Value
A pointer to the FILE object, or NULL if there was an error. 
Portability
ANSI, POSIX
-- 
 Ciao, Bianco.
 Reply to luca.bianco (at) 
tiscalinet.it

una funzione che mi possa sostituire la creat().
creat() appartiene allo standard POSIX (non a quello ISO).
Con la fopen() e i relativi flag dovresti riuscire a ricrearne il
comportamento.
--
Walkie...@Libero.It (ICQ# 8143647)

Newsgroup: it.comp.lang.c
Titolo: Gioco di programmazione C

Salve,
anche se c'entra ben poco con questa newsgroup ho sviluppato una specie di
port di CRobots per windows.
Si tratta di far combattere dei ROBOT che non sono altro che delle Dll da
poter creare in qualsiasi linguaggio(meglio in C o C++). Lo scopo e di
fare delle gare di programmazione e di far lottare gli "algoritmi" che uno
crea.
Per chi volesse provare questo programma saro lieto di mandarne una copia.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Beh, mi sembra una cosa carina....!!
mi manderesti una copia del programma a 
newbie_...@katamail.com
( 
magari se puoi aggiungi qalke dettaglio sul tuo programma )?
grazie ciaoz
Newsgroup: it.comp.lang.c
Titolo: Differenza tra exit() e return 0

Potreste cortesemente dirmi la differenza tra:
exit();
e
return 0;
messi alla fine di una funzione o programma?
Ringrazio anticipatamente chiunque risponda.
Simo

messi alla fine di una funzione o programma?
Alla fine di una funzione non ci vuole exit() ma return,
tuttavia :
exit() ;  
non e' una chiamata valida.
Bisogna passare alla funzione il parametro indicante il
codice d'uscita dal programma.
Il codice da usare e' 0 sotto qualunque sistema operativo
(c'e' stata una forte influenza di UNIX in questo senso) ed
indica successo.  
Invece, per quanto riguarda il codice d'errore, bisogna
usare EXIT_FAILURE, una macro definita negli header standard
e specifica per il sistema che si sta utilizzando (esiste
anche EXIT_SUCCESS).
Alla fine di un programma puoi usare sia return che exit()
(in realta' return non fa altro che richiamare exit()).
--
CyberWalkie - walkietalkie(at)
libero.it

 wrote in message
3b50815f...@news.libero.it...


 wrote in message
news:3b50815f...@news.libero.it...

return è una istruzione che passa  il controllo dalla funzione in
esecuzione a quella chiamante, ritornandole  eventualmente un valore.
Nel caso della
main() il controllo viene ritornato al S.O.
Secondo lo standard exit è una funzione che termina il programma in
esecuzione e ritorna il  valore di stato al S.O dopo aver eseguito le
operazioni seguenti:
- esecuzione di tutte le funzioni registrate da atexit(), in ordine
inverso a
  quello di registrazione.
- scrittura di tutti i dati pendenti nei buffers dei files aperti in
scrittura.
- chiusura di tutti i files aperti.
- cancellazione di tutti i files creati con la funzione tmpfile.
Da notare che, a differenza di return, exit()  NON può tornare alla
funzione chiamante, ma deve tornare al S.O., sia che venga chiamata da
main() che da un'altra funzione
HTH
Newsgroup: it.comp.lang.c
Titolo: Programmazione su Macintosh

Sono un utenet Macinotsh e sarei tentato di imparare a programmare su
Mac in C però ho sentito dire che la cosa più difficile della
programmazione sul Mac è la gestione dell'interfaccia grafica. Ora
vorrei sapere se qualcuno di voi, magari già con qualche esperienza,
saprebbe dirmi se è veramente così difficile?
Se avete qualche utile consiglio da darmi (libri, siti, riviste, cd
ecc.)?
Insomma datemi un consiglio.
-- 

and...@cancellami.mix.it
 (Andrea) wrote:

Come obbista, ho iniziato col Think C 4.0 (circa 1990). Ho impiegato
alcuni mesi per digerire il primo vol. degli Inside Macintosh vecchia
versione (la documentazione ufficiale per i programmatori Mac).  Appresi i
rudimenti della programmazione per eventi, le finestre, i controlli,
QuickDraw, ecc. ho dovuto re-inventarmi da me la struttura base per un
programma tipico. Col senno di poi, avrei fatto meglio a comprarmi un bel
libro come il "Macintosh C Programming Primer" e avrei risparmiato molta
fatica. Dunque, secondo me i passaggi da fare sono grosso modo questi:
1) Approfondire la conoscenza del C puro (tipi, puntatori, strutture dati,
ecc.). Molti testi sul C approfondiscono le librerie standard per l'I/O,
le stringhe, ecc. ma queste cose servono a poco o niente se lo scopo e'
di usare MacOS.
2) Farsi guidare da un buon libro per imparare bene le regole della
interfaccia grafica e l'uso nei programmi.
3) Fare poi riferimento agli Inside Mac per tutti i dettagli.
Ciao,
- Salsi
Newsgroup: it.comp.lang.c
Titolo: strutture incrociate

salve a tutti, sto scrivendo un pacchetto di programmi per la
pianificazione di orari:
il pacchetto e' diviso in tre programmi di cui uno costruisce i turni,
un altro i lavori, ed il terzo che legge i file creati dai primi e li
organizza. i tre programmi condividono vari pezzi di codice, tipo
lettura dei file, ed alcune strutture dati
Col progredire dei programmi, la parte in comune, sopratutto delle
strutture, diventa sempre piu piccola tanto che mi chiedo se non sia il
caso di dividere definitivamente tutto. 
Esempio:
il generatore di turni usa un albero di strutture di questo tipo
giorno
    |--->macchina lavorante
                          |--->turni della macchina
l'analizzatore invece
macchina
   |---->giorno lavorativo
                          |--->turni per quel giorno
le 6 strutture si assomigliano ma non sono uguali, e mi stavo chiedendo
se fosse il caso di infilare in ogni struttura un puntatore ad entrambe
le possibili figlie ( in "macchina" mettere un puntatore sia a "giorno"
che a "turni" ed in ogni programma usare solo il puntatore che mi
interessa... ma mi sembra una cosa un po' sporca!
Usare in tutti e tre i programmi gli stessi identici costrutti e'
sconveniente dal punto di vista della semplicita' del codice, (
organizzare un calendario secondo le macchine e' un casino, e i lavori
si organizzano per macchina... ) quindi ci sono solo due opzioni
1) in ogni struttura puntatori multipli per ogni sottostruttura
2) strutture personalizzate e addio compatibilita' dei pezzi di codice (
non importante, dopo tutto 
Le mie preferenze sono di conservare il codice il piu pulito e leggibile
possibile, quindi opterei per la 2).... Che cosa mi consigliate? 
Grazie!!
Ivan

Anche a me interessa un problema del genere, penso che si riesca a risolvere
più facilmente in C++, però non conosco il C++ :-/
Lanugo

possibile, quindi opterei per la 2).... Che cosa mi consigliate? 
Non riesco a capire cosa intendi per leggibile,
comunque in linea di principio la semplicita' e la
leggibilita' sono qualita' da tenere sempre
presenti :-)
Senjin Omukae

 
hai perfettamente ragione, ma quando ogni 2 settimane il capo arriva e
ti dice "mah qui potresti fare in modo che sia possibile fare questo? e
quest'altro? " io che faccio? butto a mare tutte le volte meta' del
codice scritto fino a quel momento, o tento un riadattamento? ( o mi
cerco una ditta piu seria )? gradirei un consiglio anche su questo...
anche se ormai ho finito, spero....
Ivan
Newsgroup: it.comp.lang.c
Titolo: about header<sdtio.h>

Salve,
gentilmente qualcuno sa dirmi perchè su tutti i manuali C si
scrive che per usare  printf , scanf bisogna mettere nel sorgente #include
<stdio.h>
io ho compilato (ho usato un compil  gnu sia sotto win che linux ) il
seguente programmino proposto da tutti i manuali all' inizio dello studio
del linguaggio
 main ()  { printf("salve mondo \n " ) ; } appunto senza #include <stdio.h>
,
ma allora perchè  lo devo mettere secondo i sacri manuali ?
Scusate per la futilità della questione , ma la cosa io la trovo curiosa .

ma allora perchè  lo devo mettere secondo i sacri manuali ?
Ma hai generato anche l'eseguibile?
Ciao Luciano

Devi includerlo solo per la dichiarazione della funzione.
Se non lo includi non hai problemi a chiamarla ma il compilatore assume che
il valore di ritorno della funzione sia int. In questo caso non hai problemi
perche' e' giusto e comunque nessuno si sogna di controllare il risultato di
una printf.
Se compili con un livello di warning alto dovresti ricevere un messaggio del
tipo "...assuming int as return value...".
Se, pero', chiami una funzione che torna un valore di tipo diverso hai dei
problemi.
Ciao.
--
Antonio Donatiello

ma allora perchè  lo devo mettere secondo i sacri manuali ?
Richiamare una funzione non dichiarata é una prassi assai dubbia,
e se la funzione stessa é variadica, come lo é la printf, non é neppure
possibile garantire su tutte le macchine un funzionamento corretto
(é abbastanza comune, a seconda della CPU in gioco, che una funz
variadica richieda una convenzione di chiamata diversa da quella di
una funz "normale", cioé di una il cui nome e tipo di argomenti é
"fisso", e noto al momento della compilazione).
Questo, ad esempio, vale anche su architetture Intel per quei
compilatori che, per default o su richiesta, usano la veloce
convenzione di chiamata "_fastcall", in cui i primi argomenti
vengono posti nei *registri* del processore (o nei registri
speciali/stack speciale floating point del coprocessore, che
comunque e' tipicamente integrato al processore stesso da
anni).  Questa calling convention non é usabile per funzioni
variadiche, che necessariamente devono mettere tutti gli
argomenti nello stack "normale".
E' un peccato che alcuni compilatori, come il gcc e quelli
della Microsoft, sacrifichino la velocitá di esecuzione alla
compatibilitá del codice generato (per default) in mancanza
del necessario #include <stdio.h>; non a caso infatti, il
codice piú veloce é generalmente prodotto dal compilatore
Watcom, che per default usa la convenzione fastcall (e
quindi ti costruisce un programma che va in crash orrendo
a runtime se ometti l'include di <stdio.h> in un sorgente da
cui chiami printf).
Akex


 del linguaggio
Prova questo semplice programma...
void main(void)
{
	int i;
	puts(i);
}
Compilato senza gli header non ti dice niente, includendo stdio.h il
compilatore ti avverte che hai sbagliato qualcosa...
prova.c: In function `main':
prova.c:6: warning: passing arg 1 of `puts' makes pointer from integer without
a cast
-- 
*** Gottardi Matteo / 
goma...@tin.it
 ***
*Linux*, the choice of a _GNU_ generation
Newsgroup: it.comp.lang.c
Titolo: strtok()

Ciao,
per favore potete dirmi quanto segue?
Se io ho:
char stringa[]="";
come faccio ad associare a stringa il risultato di una strtok()?
grazie - saluti :)
Marco Zanon [
http://www.marcozanon.com
]

 come faccio ad associare a stringa il risultato di una strtok()?
Stringa lo dichari come puntatore ad un char (char *stringa) e poi assegni
senza problemi
    s=strtok();
oppure dichiari una stringa con dimensione fissa ed usi strcpy per
trasferire il risultato (strcpy(stringa,strtok()).
Attenzione strtok puo tornare NULL, quindi occhio con strcpy.

ok grazie,
ciao :)
Marco Zanon [
http://www.marcozanon.com
]

 per trasferire il risultato (strcpy(stringa,strtok()).
mmh, e sennò? altre soluzioni? :)
grazie - ciao,
Marco Zanon [
http://www.marcozanon.com
]


 char data[32][32]; // target
 int cnt=0;
 char *sep = "\t";// leggi TAB seperated CSV
 char *p;
 p = strtok(line,sep);  // get first
 while (p) { // valida data
    strcpy(data[cnt],p); // copy in array
    printf("%d %s\n",cnt,p); // some output
    cnt++; // next element for copy
    p = strtok(NULL,sep); // get next
 }

grazie, penso che prenderň qualche spunto... :)
Marco Zanon [
http://www.marcozanon.com
]

Newsgroup: it.comp.lang.c
Titolo: home dir

ciao a tutti, ho un problema, sto realizzando un client ftp ma ho bisogno
di sapere se esiste una funzione o un modo che ritorni la directory home
dell'utente. in termini pratici mi serve di sapere come si fa in c a
conoscere il nome utente (e di conseguenza la sua home directory).
grazie,
									lorenzo

 dell'utente
In Unix
    leggi la variabile d' ambiente HOME
In Win32
    leggi le variabili d' ambiente   HOMEDRIVE e HOMEPATH
Ciao
 -----= Posted via Newsfeed.Com, Uncensored Usenet News =-----
http://www.newsfeed.com
 - The #1 Newsgroup Service in the World!
-----== 90,000 Groups! - 17 Servers! - Unlimited Download! =-----
Newsgroup: it.comp.lang.c
Titolo: Glibc e criptografia

Ciao a tutti,
sto cercando di utilizzare le funzioni di cryptografia presenti in glibc 
ma incontro dei problemi nonstante mi sia informato attraverso la 
documentazione presente in man di setkey() encrypt() ecc.. e da altre 
fonti presenti sulla rete.
Di seguito il programmino che tenta di cryptare in un file una frase 
letta da un'altro file.
Compilato linkato ma mi riscrive il testo in chiaro.
Dov'e' l'inghippo?
La funzione setkey vuole una chiave a 64 bit. Ciascun bit e 
rappresentato da un byte. La stringa usata come chiave, è ricavata da 
una chiave pubblica generata con gpg. Potrei comunque utiliizare come 
chiave una qualsiasi stringa di 64 bytes o c'e una procedura per 
generare una chiave a 64 bit? gpg non dice nulla in proposito.
Grazie tutti.
P.S. Da ricerche effettuate con google questo risulta essere un 
argomento poco trattato anche a livello di esempi.
----------------Programmino :-)  ----------------------
#include <stdio.h>
#include <crypt.h>
int main() {
int mode = 0;
size_t  size_dato = 1;
size_t  lblock=64;
size_t nread;
FILE * fs;
FILE * fd;
/*buffer usato per cryptare i datio e che poi verra scritto in fdest*/
char * buf[64];								
/* chiave 64 bytes */
const char * key = 
"mQGiBEJQC1cRBACdcoramct7/qOEmvnl2vLPvAfCl1/I1XYBGWnxzYJaRVL6UXGw";
/*nome del file da dove leggere la frase da cryptare da cryptare*/
const char * fsource = "/myadir/testoinchiaro.asc"; 				
/*nome del file che conterra' il testo cryptato*/
const char * fdest = "/root/testcryptato.asc";	
/* apre il file sorgente in lettura*/
fs=fopen( fsource,"r"); 							
/* apre il file sorgente in lettura*/
fd=fopen( fdest,"a"); 							
if (fs == NULL) {
printf("%s","problemi sull'apertura del file\n");
	return 0;
	}
nread = fread(buf,size_dato,lblock,fs);
printf("%u\n\nbyte letti->>>",nread);
/*setta la chiave usata per criptare il documento*/
void setkey (key);					
void encrypt (buf, mode); /* qui DOVREBBE cryptare*/
/* scrive in fd il buffer cryptato buf
nread = fwrite(buf,size_dato,lblock,fd);
printf("%u\n\nbytes scritti->>",nread,"\n");
fclose(fd);
fclose(fs);
}

 
certo che faccio il link,
  ma continua a non funzionare
bhooo!! mistero


Ma gli altri punti che ti ho segnalato li hai visti?
A me funzionava.


Newsgroup: it.comp.lang.c
Titolo: visualizzazione del contenuto di una dll (forse un pò OT)

Esiste un modo per visualizzare il contenuto di una libreria dinamica per
sapere le funzioni contenute.
__________________________________________________________________ paolo
elos ICQ#: 155465496 Current ICQ status: + More ways to contact me i See
more about me:
__________________________________________________________________

 sapere le funzioni contenute.
Con VC++ viene data un'utility chiamata dumpbin.
dumpbin /EXPORTS
per sapere le funzioni esportate.
Se il tuo scopo e' sapere anche quali parametri prende una funzione
contenuta in una dll (e di cui non hai i file di include), ti avviso
che sapere le funzioni esportate non basta.
La prossima volta spostati su it.comp.programmare.win32
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c
Titolo: il linguaggio C e i virus

Salve a tutti!
Vorrei sapere se i virus sono scritti in Assembler oppure
in C.
Grazie e ciao!
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Grazie e ciao!
ormai li trovi scritti in qualsiasi cosa ... non avendo piu' problemi di
dimensioni riescono a coprire un piu' ampio spettro di linguaggi di dev ecc
...
infatti molti ormai sono anche grossi 200k e cio' vuole dire che si portano
a dietro molto codice anche inutile ma non per questo sono meno pericolosi
...
ciao
Newsgroup: it.comp.lang.c
Titolo: Prodotti dal catalogo FARNELL in cambio di PROGETTI/RISORSE/APPUNTI

Abbiamo lanciato, in collaborazione con Farnell questa iniziativa 
(Academics) per studenti di elettronica e informatica
L'idea è quella di condividere i propri progetti, tutorial, appunti
e di partecipare attivamente alla community,
in cambio di prodotti dal catalogo Farnell
(piu di 450000!)
http://it.emcelettronica.com/universit%C3%A0-regolamento-studenti
Che ne pensate?
Emanuele
-- 
YOUR ELECTRONICS OPEN SOURCE * 
http://dev.emcelettronica.com

 Che ne pensate?
gia' solo il fatto che accetti .doc come formato la dice lunga.
il fatto che bisogna registrarsi per leggere lo trovo estremamente
irritante.
senza contare che non si capisce bene come verra' dato il punteggio.
Ciao Jack

 Ciao Jack


 se l'autore non accetta, non verrà pubblicato
si, ma con che parametri? proporzionale al numero di avverbi
nell'articolo? al numero di figure? a quante "q" ci sono?
Ciao Jack

 Ciao Jack

Newsgroup: it.comp.lang.c
Titolo: programmare su più file

come faccio a dividermi su più file dei gruppi di funzioni?
i .h gli includo ma i .c?
dovrei usare un makefile?



metti le funzioni nei .c, i loro prototipi nei .h, includi i .h e poi
compili insieme i files
puoi mettere tutto cio' in un makefile e sei a posto
m

 dovrei usare un makefile?
Dipende dal sistema, lo standard non dice nulla a riguardo (mi pare).
I Makefile sono una soluzione abb portatile, e sicuramente la soluzione 
'standard' sotto unix.
-- 
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

potete postarmi un makefile semplicissimo di 2 file?
ho trovato solo makefile giganti in giro...:-(

 ho trovato solo makefile giganti in giro...:-(
Come ho detto: il discorso dei makefile e' dipendente dal sistema => sei 
OT su questo newsgroup, dovresti provare, ad es, su it.comp.os.linux.

Newsgroup: it.comp.lang.c
Titolo: Compressore

Ciao a tutti.
Ho un problema.
Ho un archivio compresso.
Contiene decine di file.
Cerco il modo per poter cancellare (a riga di comando) i file piu'
vecchi di "x" giorni.
Esempio: se usassi arj, avrei archivio.arj
Nel file archivio.arj ho 100 file, di cui 30 piu' vecchi di 10 giorni.
Mi serve una riga di comando che mi cancelli proprio quei file piu'
vecchi di 10 giorni, senza chiedere nulla.
Potete consigliarmi un compressore qualunque (zip, arj, rar, zoo,
ecc...) basta che faccia quello che chiedo?
Con arj sono arrivato a questa conclusione.
ARJ D *.* nomefile.arj -O[aammgg] mi cancella i file da OGGI alla data
[aammgg]
ARJ D *.* nomefile.arj -OB[aammgg] mi cancella i file PRIMA della data
[aammgg]
ARJ D *.* nomefile.arj -OD[numerogiorni] mi cancella i file da OGGI a
quel numero di giorni
Ma porca miseria non esiste il porcesso inverso, cioe' che mi cancelli
i file PRIMA di quei giorni, e nemmeno posso invertire il comando
-OD[numerogiorni]
Potrei passare un parametro, con un file batch, prelevando la data
corrente [DATE] e togliendo un mese (mi basta), e poi passarlo come
parametro %1, ad esempio:
ARJ D *.* nomefile.arj -OB%     ------- dove %1 e' l'elaborazione
della data corrente, con un mese in meno.
Come faccio?
Avete idea?
Mi potete aiutare?
Ripeto: ogni sistema e' buono, basta che faccia quello che chiedo.
Grazie mille in anticipo.
--
----------------------------------------------------------------------
                Hiroshima 45, Chernobyl 86, Windows 98
           Micro$oft: what do you want to reinstall today?®
     Windows 98: se lo conosci lo eviti; se lo conosci non ti uccide.
----------------------------------------------------------------------

 Come faccio?
...e la tua domanda sul C e`?
	Alla prossima,
		Marco

 ...e la tua domanda sul C e`?
Semplicemente speravo che chi lavora con "C" lavori in DOS, e abbia
avuto il mio stesso problema...
Tutto qui.

Newsgroup: it.comp.lang.c
Titolo: Puntatori, niubbo

Salve, sto studiando i puntatori e finchè mi trovo scritto char *s o
cose del genere va tutto bene... ma quando mi trovo scritto char **p =
elenco le cose cambiano suppongo e non capisco il significato del doppio
asterisco...la dichiarazione della funzione è questa:
char **ordina (char **elenco, int n)
{
     char **p = elenco
     char   *s; etc...
qualcuno può aiutarmi?

Anolethron ha scritto:

char **nome significa "puntatore a puntatore a char". In altre parole un 
tipo di puntatore "specializzato" nel puntare a puntatori a char. Questo 
e' tutto :-) Se hai altri dubbi, per esempio su come utilizzarli posta 
ancora. Ciao
-- 
Devaraja (Xdevaraja87^gmail^c0mX)
Linux Registerd User #338167
http://counter.li.org

Anolethron ha scritto:

Considera un elemento E di tipo tE e un insieme di puntatori generici 
{p_0, ..., p_n}. Costruiamo un grafo aciclico contenente tutti i puntatori:
p_0 -> p_1 -> p_2 -> p_3 -> E
                      p_4 -> E
        p_5 -> p_6 -> p_7 -> E
               p_8 -> p_9 -> E
...
In un sistema dove gli oggetti differiscono per il loro "tipo" e sono 
ricorsivamente componibili, anche il loro "tipo" risulta essere una 
composizione di tipi.
Allora, nell'esempio, p_3 è di tipo *tE, p_2 è di tipo *(*tE), p_1 di 
tipo *(*(*tE)) e p_0 di tipo *(*(*(*tE))). Le parentesi si possono omettere.
Gli elementi p_3, p_4, p_7, p_9 sono dello stesso tipo, così come gli 
elementi p_2, p_6, p_8 e gli elementi p_1, p_5.
Kiuhnm

grazie a tutti e due

Newsgroup: it.comp.lang.c
Titolo: comandi DOS

Come faccio all'interno di un programma a dare un comando dos del tipo:
c:\p.exe -k ls > pippo.txt
senza che appaia la finestra DOS ,quindi system non va bene!!, e con spanwl
non ci sono riuscito:-((((
grazie a tutti!

 wrote in 
message 
news:N0ur6.34308$yl2.8...@news1.tin.it
...


 wrote in message
RrFr6.56442$lj4.1...@news6.giganews.com...

Newsgroup: it.comp.lang.c
Titolo: Wav ed MP3

Salve,
Qualcuno conosce gli algorittimi di compressione mp3
ed il formato dei file WAV e MP3 oppure dove reperire
documentazione in merito?
Grazie
--
Posted from 
mta09-acc.tin.it
 [212.216.176.40] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 documentazione in merito?
Quello che segue è la struttuta dei 44 byte dell'header dei fle wave.
Sugli algoritmi di compressione e sul formato mp3 mi dispiace ma non ho
niente.
Offset   Length   Contents
  0      4 bytes  "RIFF"
  4      4 bytes  <File length - 8>
  8      4 bytes  "WAVE"
 12      4 bytes  "fmt "
 16      4 bytes  <Length of the fmt data> // (=16)
 20      2 bytes  <WAVE File Encoding Tag>
 22      2 bytes  <Channels>     // Channels: 1 = mono, 2 = stereo
 24      4 bytes  <Sample rate>  // Samples per second: e.g., 44100
 28      4 bytes  <bytes/second> // sample rate * block align
 32      2 bytes  <block align>  // channels * bits/sample / 8
 34      2 bytes  <bits/sample>  // 8 or 16
 36      4 bytes  "data"
 40      4 bytes  <Sample data size(n)>
 44     (n)bytes  <Sample data>
--
Ciao, Gianandrea




Newsgroup: it.comp.lang.c
Titolo: Traduttore Pascal/C

Sapreste indicarmi dove poter reperire un traduttore di codici da Turbo
pascal
a C ?
Grazie mille.
P.S Vi prego di rispondermi qui 
f.gent...@tin.it

 a C ?
Sotto Linux : p2c 
P.
-- 
_____
http://theunixplace.com/~entropia/index.html_____
 
  Mutationem motus proportionalem esse vi impressae 
et fieri secundum lineam rectam qua vis illa imprimitur
	I. N.
Newsgroup: it.comp.lang.c
Titolo: Uso di variabili globali e FILE.H

Salve a tutti , se dichiaro
delle variabili globali nel 
file main.c , in un file.h
i prototipi delle funzioni
e nel file funzioni.c , il
corpo delle stesse, quando uso
le variabili globali nel file
funzioni.c , devo dichiararle
extern?
Grazie a tutti



Hai provato a toglierti la curiosità facendo una prova?
A che cosa serve la keyword "extern"? 
-- 
Remove _NOTRASH to answer me!

 A che cosa serve la keyword "extern"?
Lo vuoi sapere o fai solo il saputello?
C:\>iao Angelo
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Lo vuoi sapere o fai solo il saputello?
Semplicemente "invogliavo" l'utente del post originale a documentarsi 
sulla funzione di extern nel linguaggio.


 leggersi un manuale prima di postare qui.
Vero anche questo. In questo caso poteva essere opportuno suggerire di fare un
giro su
- K&R II ed. pag 35-37 e pag 100 (vers. Italiana);
- 
http://www.faqs.org/faqs/C-faq/
 una banale ricerca con keyword "extern" gli
  avrebbe procurato alcuni documenti con una casistica estensiva dell'uso
  dello specificatore;
- 
http://www.cs.cf.ac.uk/Dave/C/node35.html#SECTION003500000000000000000
  documento da "prendere con le molle" in diversi punti, ma questa sezione
  mi sembra fatta bene.
- ecc., ecc.   
e nel caso questo non fosse stato sufficiente, di farsi risentire sul NG.
C:\>iao Angelo

Vi ringrazio per le risposte.
Diciamo che ho letto il K&R 
ma purtroppo non ho capito
molto, mi sapete dire voi?
Potete dare una risposta
definitiva , cosi da mettere
da togliere dubbi a tutti quelli
che ne hanno in merito a questi
"problemi"?
Grazie1000
Ciao

/###Lorenzo*/ wrote:

In sintesi, si usa extern nome_variabile per dire al compilatore: "guarda 
che da qualche parte, che a te non interessa (ci pensa poi il linker dopo a 
sistemare le cose), c'e' una variabile che si chiama /nome_variabile/ e io 
faccio riferimento a quella, quindi non rompere perche' non la trovi nel 
file corrente (compresi gli include)".
Le variabili globali le definisci nei .c, poi per ogni altro file che deve 
avere la visibilita' della variabile (sia esso un .c o un .h) devi 
dichiarare la stessa variabile preceduta dalla keyword /extern/.
P.S.  Potresti settare il ritorno a capo a qualcosa intorno ai, mettiamo 76 
      caratteri, anziche' i 36 circa attuali? Certo, non supporterai piu' 40 
      e passa livelli di quotatura, ma non penso sia gravissimo :)
-- 
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."

Ringrazio tutti per le
informazioni.
Grazie
Ciao
Newsgroup: it.comp.lang.c
Titolo: Incrementare una variabile

Scusatemi se la domanda è banale, ma qual è la differenza, data una
variabile int a, tra:
a++;
++a;?
Grazie.

you wrote:

A livello di istruzione singola nessuna.
Cioe' 
a++ ;
equivale a 
++a ;
Ma in generale la prima forma implica che al momento della valutazione
venga considerato il valore corrente di a e il suo incremento sia
spostato al prossimo "sequence-point" (presumibilmente un attimo prima
che la valutazione dell'espressione sia conclusa).
Nel secondo caso viene introdotto un "sequence-point", nel senso che
viene calcolato l'incremento di a ed il valore valutato e' quello
appena aggiornato.
In parole povere : a++ significa "prendi il valore di a ed incrementa
la variabile appena possibile" e ++a significa "incrementa a e prendi
il valore di a".

 ++a;?
int a = 1;
int b = a++;     // a è diventato 2, b è diventato 1
mentre
int a = 1;
int b = ++a;     // a è diventato 2, b è diventato 2
Quindi a viene comunque incrementato ma il risultato dell'espressione
che contiene a++ tiene conto del suo valore prima dell'incremento. Al
contrario nel secondo caso.
EMG

Grazie a tutti
Antonio

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

Ogni volta che cerco di compilare il seguente codice, mi viene dato il
messaggio "unexpected EOF". Perche'? Dov'è l'errore?
                                            /*Programma per trovare i
numeri maggiori o minori di 6*/
#include<stdio.h>
int magmin(int),i;
int numeri[10]={0,26,1,56,78,102,2,5,9,4,3},intero=6,risposta;
main();
{
if (risposta==1)     /*se il numero e' maggiore*/
printf("\n%d è maggiore di %",i,intero);
else                        /*altrimenti se il numero e' minore*/
printf("\n%d è minore di %d",i,intero);
}
int magmin(int x);
{
for (i==0;i<=9;i++)
if (i>intero)      /*se l'indice e' maggiore*/
return(risposta==1);  /*ritorna 1*/
else
return(risposta==0);
}
-------------
1.000.000 DI EUROPEI PROTESTANO CONTRO LA TUT-
LA STAMPA ITALIANA LI CENSURA E LI IGNORA!
Per informarti e protestare, visita 
www.notut.org
e iscriviti alla lista informativa: 
notut-s...@onelist.com
-------------------------
OPERAZIONE TRASPARENZA
*NO* alle bollette telefoniche coi numeri oscurati,
*SI* alla documentazione integrale degli addebiti!
http://trasparenza.cjb.net
 - 
trasparenz...@onelist.com
(mailing-list)

return(risposta==0);
^^^^^^^^^^^^^^^^^^^^^
probabilmente volevi scrivere :
return ( risposta = 1 );
else
return ( risposta = 0 );
Newsgroup: it.comp.lang.c
Titolo: stampare in dos

Sono un principiante del C
uso il compilatore Borland Turbo C++ 3.0 per dos
sapete se esiste una libreria e/o funzione particolare per gestire la
stampante?
conosco la chiamata bdos() con parametro 5 (se non erro)
ma permette di stampare una lettera alla volta o al massimo una stringa
ad es:
char *s;
while (*s) bdos(0x5 , *s++ , 0);
ci vorrebbe una funzione che stampasse, non so, un'intera struttura o un
array di strutture...
grazie
Max
night...@tiscalinet.it
--
Posted from 
twingo.tiscalinet.it
 [195.130.224.85] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

struttura o un array di strutture...
Te la devi scrivere tu (sono poche righe). Come puo' una funzione
generica sapere qual'e' il formato di una struttura e come la vuoi
stampare ?
ciao

Newsgroup: it.comp.lang.c
Titolo: cprintf()

Ho letto(su questo news group) della possibilità di stampare a video
colorato.
Ho letto l'header di conio.h,installato da DEV C/C++ 4.01, e questa
funzione c'è, e sono enumerati ben 15 colori.
Ma come si usa.
Ho fatto vari tentativi ma niente.
Un semplice programmino pre stampare "ciao" a colori please?.
Grazie 
Sergio

Un semplice programmino pre stampare "ciao" a colori please?.
Credo che cprintf() sfrutti il colore impostato al momento.
Per impostare un determinato colore, devi usare textcolor().
Prima imposti il colore e poi stampi.
-- 
Andrea Laforgia
#exclude <windows.h>

 Prima imposti il colore e poi stampi.
Non funziona.
potresti precisare meglio con un semplice esempio?
Grazie
Sergio

potresti precisare meglio con un semplice esempio?
Con Borland C++ Builder, il seguente esempio funziona:
#include <conio.h>
int main(void)
{
    int i;
    clrscr();
    gotoxy(1, 1);
    for (i = 0; i < 16; i++)
    {
        textcolor(i);
        cprintf("Hello world\r\n");
    }
    getch();
    return 0;

Newsgroup: it.comp.lang.c
Titolo: Microsoft Visual C++ 6.0

Salve ragazzi,
mi sento una capra con questo ambiente !
Chi mi sa dire come posizionare il cursore nelle coordinate che voglio ?
col BorlandC era gotoxy(int, int) !
Inoltre come faccio il clear screen ?
Il programma gira in ambiente Dos !
Grazie, miei salvatori!

Entrambe le funzioni sono in <conio.h>, basta includerla, se non ce
l'hai è inclusa in un qualsiasi compilatore C (occhio che richiede
stddef.h), scusa ma al momento ho disinstallato VC++...

-- 
Ciao, gengisdave
http://digilander.iol.it/gengisdave

Newsgroup: it.comp.lang.c
Titolo: HTTP request

Ho bisogno di gestire l'output ricevuto dalla lettura di una pagina web
all'interno di un programma C.
Ho cercato invano sulla rete esempi semplici e chiari che mi aiutassero,
senza successo !
Ed ecco quindi che chiedo a voi !!!
in sostanza avrei bisogno di eseguire una funzione che
(sfruttando le funzioni winsock.dll - wininet.h)
mi metta in un buffer di memoria (o mi scriva su di un file) il risultato di
una richiesta ad un host:port/url
dove host, port e url sono parametri specificati di volta in volta.
Vi chiedo esplicitamente degli ESEMPI, non suggeritemi di collegarmi a
socket.com
, di leggere l'hep del compilatore.
Vi chiedo solo un po' di righe di codice sorgente, please !
Grazie a tutti
andrea
-- 
Posted from [194.184.61.3] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

andrea
So che si tratta di un sacco di carta (e di documenti HTML
o TXT). Se pero' vuoi capirci qualcosa mi sa che devi
prendere l'abitudine di leggere e provare, leggere e provare,
leggere e provare.
Se non capisci come qualcosa fa a funzionare allora di certo
non capirai il motivo di quando (dico "quando" e non "se")
il tutto smettera' di funzionare.
E questo ti capitera' sicuramente nel momento peggiore (non
prendertela con me... non sono io a dirlo... ma Murphy ;) )
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff
Newsgroup: it.comp.lang.c
Titolo: problema DJGPP

Ciao ho appena installato(semplicemente decompresso i file zip) il djgpp con
l'ambiente rhide.Perņ non riesco a compilare neanche un semplice programma,
il rhide mi segnala : "problem, cannot exec 'as': no such file or directory
(ENOENT)".
cosa devo fare?
dove si settano le directory di include e di lib?
Ciao e grazie in anticipo simone

,

Se guarda il file readme.1st ci sono le istruzioni
per l'installazione del compilatore c djgpp.
In particolare, si assicuri di aver settato bene (nell'autoexec.bat)
le variabili DJGPP e PATH
(per esempio se la sua directory del djgpp e' c:\djgpp
allora questo settaggio potrebbe andar bene:
set DJGPP=C:\DJGPP\DJGPP.ENV
set PATH=C:\DJGPP\BIN;%PATH%
comunque e' bene leggere il file readme.1st prima
di effettuare l' installazione del compilatore djgpp).
Ciao.
Fab.
Sent via Deja.com 
http://www.deja.com/
Before you buy.