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

Salve a tutti,
    Devo effettuare una context switch su un processore Pentium.Riesco a
salvare i registri, ma non so come salvare i flags e l'istruction
pointer.Nessuno mi puņ passare una routine gią confezionata, o dirmi
dove poter reperire informazioni al riguardo??
Grazie in anticipo(doppio grazie se mi rispondete tramite mail.... ;-) )
        Andrea

 dove poter reperire informazioni al riguardo??
Su 
www.intel.it
 ci sono tutti i manuali dei processori Intel.
P.S.
Sei OT
--
Alessandro Monti

 --
Scusate tutti, non credevo di essere OT, la prossima volta stò più
attento.....
    Andrea

Newsgroup: it.comp.lang.c
Titolo: [X ESPERTI]OPERATORI BIT A BIT

Ciao tutti, sono uno studente di Ingegneria e devo fare uno studio
approfondito sugli operatori che agiscono sui singoli bit. Sapete dirmi se
esistono siti che trattano proprio di questo?
Grazie

Roberto wrote:

   Non e` che sia un argomento cosi` vasto: un qualsiasi libro sul 
linguaggio (anche il deprecabile Schildt) contiene tutto lo scibile 
universale sugli operatori /bitwise/ in C. La biblioteca della tua 
facolta`, inoltre, conterra` almeno la prima edizione del "Linguaggio C" 
di Kernighan e Ritchie, non mi sembra che dall'epoca siano cambiati gli 
operatori. Infine, in Rete puoi trovare tonnellate di materiale: Google, 
per esempio, con la stringa "C bitwise operators" ha trovato 59 pagine 
in 0,09 secondi.
-- 
Alla prossima,
Marco

>, <<.
-- 
The Follet

perche' deprecabile?
I testi di Schildt sono notoriamente pessimi.
-- 
The Follet

perche' deprecabile?
Guarda qui la lista delle correzioni a uno dei suoi libri.
http://www.lysator.liu.se/c/schildt.html
dopo che ti sarai sbellicato dalle risate vai su accu e cerca Schildt.
Per la precisione guarda qui:
http://www.accu.org/bookreviews/public/reviews/0au/s.htm
Fai un grep su Shildt e guardati i commenti.
Mox :)
Newsgroup: it.comp.lang.c
Titolo: Cancellazione carattere

Per poter cancellare un carattere da un file... bisogna sovrascrivere quest'
ultimo?
fprintf(stream,"%c", ' ');
in questo modo???
--
______________________________
I Programmatori non si arrendono MAI
----------------------------------------

 in questo modo???
Non lo stai cancellando, lo stai sovrascrivendo.
Se vuoi cancellarlo devi riscrivere il file senza quel carattere (come fanno
i comuni editor di testo):
- leggi il file in memoria
- fai le modifiche del caso (compresa la cancellazione dei caratteri)
- fai il dump su disco del testo modificato
-- 
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."

 - fai il dump su disco del testo modificato
in che casi si puo' usare il carattere di backspace ??? (terminale, file su
disco, altri file ???) o non si puo' mai usare come cancellazione ???
cmq se il file non lo deve chiudere con quel carattere alla fine puo'
benissimo far tornare indietro il puntatore di scrittura del file di un char
(ed anche per il char alla fine si potrebbero usare, se non mi sbaglio,
delle funzioni non standard per tagliare il file ad una certa dimensione, in
questo caso DimCorrente-DimChar)
ciao

 dimensione, in questo caso DimCorrente-DimChar)
Questa soluzione richiede appunto l'uso di funzioni non standard (seppur
POSIX), ma nei casi in cui si applica, le performance sono migliori.
Io non la considererei pero'.
Da quello che ho estrapolato dalle specifiche, il caso generico e' quello in
cui sia prima che dopo il carattere da cancellare, ci siano informazioni
utili.
La probabilita' che si verifichi il caso indicato da te e' a questo punto
diventa abbastanza rara... abbastanza rara da non considerarla nemmeno come
ottimizzazione IMHO.
Sempre ragionando in modo probabilistico, quando ti accorgi che devi
cancellare un carattere probabilmente hai gia' letto il file e fatto altre
modifiche. Questo si sposa perfettamente con il mio suggerimento :)
Se poi JSMR avesse sprecato qualche parola in piu' per spiegare lo scopo
anziche' solo il suo dubbio potremmo discuisirne meglio :)



Il mio scopo era quello di cancellare una riga da un file di testo.... es
1 ciao ciao ciao ciao ciao ciao ciao
2 bello bello bello bello bello bello bello
3 prova prova prova prova prova prova prova
------------------------------------------------
Quale riga vuoi cancellare? digitare la posizione: [ ]
 ricordo che 1 ,2 , 3 sono degli interi....
comunque ho risoltoquesto problema in questo modo però non so se mi sono
complicato un pò la vita...
ho semplicemente copiato il tutto in un altro file... tranne la riga da
cancellare.. Ho eliminato il precedente file... e rinominato il nuovo
file....
ciao e grazie

 file....
la norma ... hai fatto il giusto lavoro che c'era da fare ...
ciao
Newsgroup: it.comp.lang.c
Titolo: Aiuto per DJGPP

Non so come usarlo, potete aiutarmi?
Ho problemi a capire come devo installarlo.
Ciao.


Dovrebbe esserci un readme tra i file che hai scaricato!!!
In sostanza si scompattano i files zip e poi si modifica l'autoexec come
descritto nel file txt suddetto!

 descritto nel file txt suddetto!
li scompatto lasciandoli in directory diverse, vero?

 ha scritto nel messaggio
news:9qj98h$amv$1...@lacerta.tiscalinet.it...


 distribuire i vari files nelle subdirectorys!!
ok grazie!

Newsgroup: it.comp.lang.c
Titolo: INFO problema

perchč se eseguo un piccolissimo programma tipo:
#include <windows.h>
#include <stdio.h>
int main()
{
  printf ("Hello World!\n");
}
mi appare c.a. 0.2 solo per secondi?  e perchč se eseguo un programmino che
mi chiede di inserire i valori di variabili tramite tastiera termina appena
premo invio?

 ha scritto nel messaggio
news:cihru4$n1c$1...@newsread.albacom.net...

devi utilizzare come fine istruzione system("PAUSE");
o
getch();
o
getchar(); //questa č standard


#include <conio.h>
int main(){
            .
            .
            .
    getch();
}/*main*/

 mi appare c.a. 0.2 solo per secondi?  
...domanda ricorrente (anche su it.comp.lang.c++ mi pare...) si dovrebbe 
fare una FAQ :)

 
Perche' dovresti eseguire il programma all'interno di una finestra
dos.
Anche l'include di "windows.h" e' inutile: non rovinare il piu'
standard dei programmi con un fetenzia del genere. :-)
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 standard dei programmi con un fetenzia del genere. :-)
Magari voleva fare al posto di printf() una MessageBox() :)
in quel caso gli serve #include <windows.h>
:)
Newsgroup: it.comp.lang.c
Titolo: Start

Prima di iniziare a programmare, dovrei prendere una decisione:
per un corso universitario dobbiamo utilizzare un linguaggio di
programmazione; io sono indeciso tra java e c.
Lo scopo del corso č quello di apprendere dei metodi per risolvere problemi
di tipo matematico-fisico.
Da completo inesperto, java mi sembra un po' piů nuovo e "rivolto al futuro"
rispetto al c. Voi che ne dite?
Inoltre, secondo voi, per imparare il java, si deve necessariamente prima
conoscere il c?
Grazie e ciao
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

Hai dato un'occhiata a Python 3?

 Inviato via 
http://arianna.libero.it/usenet/
no anzi :)
vai tranquillo con java

java e più veloce apprendere e ha una libreria completa, puoi creare 
programmi con una semplice GUI in un tempo minore ...
Newsgroup: it.comp.lang.c
Titolo: Problemi con atof

Salve, sono ancora io...il problema è questo...ho delle stringhe che
contengono numeri con la virgola, tipo...0.999917 o 0.000066...devo
trasformarli in double, uso atof, ma quando li mostro a video con tante
cifre decimali
(printf("%1.50f  ", matrix_o[indice_riga][indice_colonna]);) mi mostra
questi numeri:
0.99991799999999997 e 0.00006600000000000005...perchè?
Sarà una stupidata, ma non capisco il motivo di queste cifre "inventate" :)
grazie,
            Mayhem



 ^_^
@ <snip> 0.999917 o 0.000066...devo
@ trasformarli in double, <snip>
@ (printf("%1.50f  ", <snip>;) mi mostra
@ questi numeri:
@ 
@ 0.99991799999999997 e 0.00006600000000000005...perch่? <snip>
Evidentemente l'algoritmo di conversione risente delle approssimazioni
delle operazioni in virgola mobile. Un buon libro di calcolo numerico
po' illuminarti, se hai tempo/voglia di leggerlo.
Ciao, Andrea

Sarà una stupidata, ma non capisco il motivo di queste cifre "inventate" :)
I numeri in virgola mobile sono rappresentazioni.
E come tutte le rappresentazioni peccano di precisione.
In particolare, lo standard IEEE 754 (ora ribattezzato, se non
erro) che viene adottato dalla maggior parte delle
implementazioni, gestisce (per i float) 7 cifre significative
(15, se non erro, per i double).


Allora non posso farci nulla? Devo tenermi i valori convertiti in modo
inesatto?...che tristezza...:(((
Cercherò un altro modo per farlo allora, grazie :)
                    Mayhem


Credo che tu abbia specificato troppe cifre decimali (50) nella
printf().
EMG

[SNIP]
Secondo me non sono convertiti in modo inesatto. Il fatto e' che tu stampi
piu' cifre significative di quante ne prevede il tipo dato, ovvero, se
memorizzi un numero usando 15 cifre significative e tenti di stamparne 50 mi
sembra corretto ottenere "spazzatura" e/o approssimazioni dopo la 15° cifra
significativa...
Prova ad esempio a eseguire questo:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
 char as[20];
 double a;
 strcpy(as, "0.999917");
 a = atof(as);
 printf("a = %1.150f\n", a);
 printf("a = %1.16f\n", a);
 return 0;
}
buona precisione a tutti
bepin

 printf("a = %1.150f\n", a);
scusate, intendevo 15 e non 150, ovvero:
printf("a = %1.15f\n", a);
buon refuso a tutti
bepin

 printf("a = %1.15f\n", a);
Forse sono ancora troppe. Perché non provi con un numero inferiore?
EMG

Forse sono ancora troppe. Perché non provi con un numero inferiore?
no, va bene perche' converto 0.999917, e lo 0 e' non significativo, quindi
%1.15f stampa 15 cifre significative. Prova il sorgente che ho postato per
la conferma.
Si, ok, il codice fa schifo...
buona precisione a tutti

Newsgroup: it.comp.lang.c
Titolo: Probelmi con typecasting!

Vi prego ho dei problemi con dei typecasting e una libreria. Se siete bravi
con il C, lasciatemi l'indirizzo di posta per contattarvi. Grazie mille.
Daniele Di Felice 
difelice...@sgol.it

con il C, lasciatemi l'indirizzo di posta per contattarvi. Grazie mille.
Il ng sul C esiste proprio per discutere questo genere di problemi !
;)
--
Andrea Laforgia
andrea_...@bigfoot.com
Newsgroup: it.comp.lang.c
Titolo: debug on linux

Spiegatemi come si fa con il gcc a fare il debug di un programma
GRAZIE
<<SAX>>

Spiegatemi come si fa con il gcc a fare il debug di un programma
gcc -g3 prova.c -o prova
poi ci lanci sopra un qualunque debugger (ddd, xxgdb, gdb, ...) il GCC
e' solo il compilatore, non si occupa lui di fare il debug, al massimo
ti puo' inserire tutte le informazioni necessarie (-gN) per farlo.
Leggiti le man e le info page per vedere i valori possibili per
l'opzione -g.
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."
Newsgroup: it.comp.lang.c
Titolo: allocazione dinamica di un array di lunghezza variabile

salve! come faccio ad allocare dinamicamente la memoria per un array che
deve essere grande quanto il testo preso in input da un file? Quello che
devo fare è un programma che esegue alcune operazioni su un file dato in
input come argomento alla linea di comando. Una funzione svolge una di
queste operazioni e riceve come parametro il puntatore al file aperto e
restituisce un puntatore a char, il quale punta a un array contenente tutto
il testo del file. Il problema è che non riesco ad allocare tale array
dinamicamente perchè non so quant'è grande il testo. Potrei porre un limite
alla grandezza dell'array, ma vorrei evitarlo. Ho pensato (ma non sono
riuscito ad implementarlo e, soprattutto, non so se si può fare) di allocare
dinamicamente una cella dell'array alla volta. Ho forti dubbi che si possa
fare una cosa del genere, ma io provo a chiedere, non si sa mai.
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 fare una cosa del genere, ma io provo a chiedere, non si sa mai.
In ogni caso sarebbe una cosa disastrosa.
Per quel che riguarda ottenere la lunghezza di un file
non e' difficile, ora non ho tempo,
ma cerca nei messaggi vecchi (o sul tuo manuale di c...)
le funzioni ftell() e fseek()
che ti bastano (una volta che hai capito cosa fanno)
per ottenere la lunghezza di un file,
dopo di che puoi allocare la memoria necessaria (1 comando)
e leggere tutto il file in memoria (1 comando)
ciao,
g.

 le funzioni ftell() e fseek()
Io ho provato cosě:
num_byte = ftell((void *)fseek(fPtr, 0, SEEK_END));
array_ptr = malloc(sizeof(char)) * num_byte + 1);
perň forse č sbagliato, perchč va in seg fault. O forse č giusto e sarŕ
qualcos'altro che va in seg fault?


> array_ptr = malloc(sizeof(char)) * num_byte + 1);
questa riga contiene un'errore

 questa riga contiene un'errore
Si lo so, dovrebbe essere
array_ptr = malloc(sizeof(char) * (num_byte + 1));
E' che non l'ho copiata e incollata ma riscritta, e quindi ho sbagliato :)
Comunque credo che l'errore non sia nell'allocazione, ma nella riga
precedente. Boh!


Sono un pollo, ho risolto: la ftell chiede il file stream, non il valore di
ritorno della fseek...


 deve essere grande quanto il testo preso in input da un file?
prima reperisci le info sulla grandezza del file (in byte), ti allochi un
array di tale dimensione e lo leggi!
oppure
apri il file, leggi un blocco di n, vedi se il file e' finito, se no,
reallochi e rileggi e iteri fino alla fine del file.
ciao
-- 
Er Baitch
"Live Your Life!!!" (Ring ain't a jail)
http://baitch.altervista.org/

Newsgroup: it.comp.lang.c
Titolo: rinominare i files

Come si fa a rinominare i files (unix) da un programma c? Quali librerie si
devono includere.Grazie per l'aiuto.
Ps:esiste una faq o un sito ufficiale del ng?

 Ps:esiste una faq o un sito ufficiale del ng?
Prova su 
www.programmazione.it
.
EMG
Newsgroup: it.comp.lang.c
Titolo: sito

mi consigliereste qualche sito che tratti il C, dove magari posso
trovare un po' di codice da spulciare?
è possibile produrre applicazioni grafiche in C?
grazie
		gabo

 è possibile produrre applicazioni grafiche in C?
Certo che si!!!
Dome
--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
PC Brain Official Web Site
http://digilander.iol.it/pcbrain
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Newsgroup: it.comp.lang.c
Titolo: running c or c++ API programming in Background and system tray

Hello everyone,
I got some problem about my C API programmming.
Glad to get your email and help. Thanks.
I want to do this:running c or c++ API programming in Background and system
tray.
Now, I will explain it clear.
1. I made one C programming API for win98 by mingw32. It may be running when
I double click in Win98 or execute it in Ms-dos.(finished)
2. Now,the first, I want to make them(.exe) to package that I can install it
in others computer (win98 or win95)
3. if I install it in the other computer,when computer restart root
it is running in background and system tray till someone want to kill it.
or computer donot need restart root, just my programming running in
background and system tray when you execute it.
I knew lots of programming like this when I installed them.
Like realplayer, ICQ ...
What do you think? Is it C technology or not?
what can I do it?
Looking forward to hearing that from you soon,
Thank you very much.
HF:))
h_...@hotmail.com
 , icq is 68831997

 tray.
You're Off Topic, sir. The topic of this newsgroup is Standard ISO C, which,
of course,  does not include Windows API programming. Moreover, the official
language of this NG is italian.
You should refer to one platform-specific NG if you want an answer to your
question. This is not intended to be rude; it is because people on this NG
might not know anything about Win programming, therefore being unable to
satisfy your request.
Cheers
Marco
--
Marco Coppo
University Of Sheffield
FAQ di it.comp.lang.c:
http://www.programmazione.it/linguaggi/c/itcomplangc.htm
Newsgroup: it.comp.lang.c
Titolo: Porta parallela....help!

Volevo chiedere se qualcuno era a conoscenza di un modo per mandare dati
alla porta parallela...ossia...è possibile mediante un programma C inviare
dati decisi da utente alla porta parallela (come se volessi stampare)...
credo che il codice della porta parallela sia 888...magari non serva però lo
posto ugualmente...chiunque mi potesse aiutare mi contattasse o nel
newsgroup o tramite mail...o tramite icq...
e-mail : 
antonio....@tiscalinet.it
icquin: 148861902
Ringrazio Anticipatamente....ciauz

newsgroup o tramite mail...o tramite icq...
Vai sul newsgroup relativo al SO sul quale vuoi realizzare il
programma.
Ciao
F. 

 scrisse:

L'indirizzo delle porte parallele si ottenie leggendo il bios:
locazione di memoria 0:0x408 in modalità reale (4 word).
Per la documentazione eccoti un "estratto" della documentazione sulle
porte hardware di Ralph Brown (PORTS.LST).
PORT 03BC-03BF - PARALLEL PRINTER PORT (MDA's LPT1)
Range:	PORT 0278h, PORT 0378h, or PORT 03BCh
03BC  -W  data port
03BC  R-  bidirectional port: input from connector
	  unidirectional port: last value written to port
03BD  RW  status port (see #P245)
03BE  RW  control port (see #P246)
Bitfields for parallel interface status port:
Bit(s)	Description	(Table P245)
 7	busy
 6	NOT acknowledge (approx. 5us low pulse)
 5	out of paper
 4	printer is selected
 3	*no* error
 2	IRQ has *not* occurred
	(PS/2) printer returned -ACK
 1-0	reserved
SeeAlso: #P246
Bitfields for parallel interface control port:
Bit(s)	Description	(Table P246)
 7-5	reserved
 7	(see PORT 037Bh bit 7)
 5	enable bidirectional port
	(PS/2 also requires enabling via PORT 0102h)
 4	enable IRQ (via -ACK)
 3	select printer (SLCT IN line)
 2	=0 initialize printer (-RESET line)
 1	automatic line feed
 0	strobe (must be set for minimum of 5 microseconds)
SeeAlso: #P245
Newsgroup: it.comp.lang.c
Titolo: Differenza fra <<= e <<

Qualcuno mi spiegherebbe la
differenza fra gli operatori di shift sx
<<   e   <<=
ho visto che la cosa si applica
anche agli altri operatori di confronto
bit-per-bit:
|   e   <<=
grazie,
ciao

 wrote

E' la stessa differenza che c'e' tra + e' += :
a += b;
equivale a:
a = a + b;
cosi' come:
a <<= 3;
equivale a:
a = a << 3;
In generale la forma:
x = x operator y
puo' essere contratta in :
x operator= y
dove la forma contratta sia presente nel linguaggio.
Se pero' hai ad esempio:
a = b + c;
*non* puoi ovviamente usare la forma contratte!
Infatti a = b + c non e' del tipo: x = x operator y
Dove vale la proprieta' commutativa puoi chiudere un'occhio:
a = b + a;
puo' essere contratto in:
a += b;
grazie alla proprieta' commutativa che ha reso possibile trasformare:
x =  y operator x
in:
x = x operator y
Purtroppo la stessa cosa non la puoi fare ad esempio con il segno - :
a = b - a;
*non* equivale a:
a = a - b;
e quindi *non* puoi scrivere:
a -= b;
Infatti con a=5 e b=2:
a = b - a; // ora a vale -3
a -= b;    // ora a vale 3
Per concludere, ritornando all'operatore <<:
a = a << 3;
e' della forma:
x = x operator y
e puo' quindi essere riscritto come:
a <<= 3;
Tutto qua!
Tommy
Newsgroup: it.comp.lang.c
Titolo: Scusate.....riprovo. Non definito hwnd?

Come posso definire "hwnd"?
Il sorgente:
WORD wReturn;
char szMsg[80];
wReturn = WinExec("draw", SW_SHOW);
if (wReturn < 32) {
    sprintf(szMsg, "WinExec failed; error code = %d", wReturn);
    MessageBox(hwnd, szMsg, "Error", MB_ICONSTOP);
}
else {
    sprintf(szMsg, "WinExec returned %d", wReturn);
    MessageBox(hwnd, szMsg, "", MB_OK);
}
Inoltre:
if (FindWindow("CtlPanelClass", "Calc.exe") == NULL)  // verifico se è
attivo
    WinExec("calc.exe", SW_SHOWNA);                         // lo avvio nel
caso non sia già...
Come  chiudo "calc.exe"?
"un passo alla volta vado avanti!"
Grazie 1000, Fulvio,

Come  chiudo "calc.exe"?
Chiama nuovamente FindWindow (i parametri corretti dovrebbero essere
"SciCalc" e "Calcolatrice"): il valore di ritorno è l'handle alla finestra
della calcolatrice. Inviale il messaggio WM_CLOSE e questa si chiuderà.
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
---------------------------------------------------------------------------

 wrote in message
DYHn3.18295$Wv3....@typhoon.libero.it...


della calcolatrice. Inviale il messaggio WM_CLOSE e questa si chiuderà.
Emh..... cioe....come si scrive?   La mia ignoranza in c++ ormai è
proverbiale!
Grazie 1000, Fulvio.

La mia ignoranza in c++ ormai è proverbiale!
A parte il fatto che stiamo parlando di codice C e non C++ (non vedo nè
classi né oggetti, sarà la miopia?), cerca di fare qualcosa a riguardo...


 wrote in message
8r%n3.27439$Wv3....@typhoon.libero.it...


Hai perfettamente ragione, ma grazie al vostro aiuto in pochi giorni ho
risolto quasi tutti i miei problemi. I miei programmini viaggiano tutto il
giorno in perfetta autonomia, quanto pensi chi mi ci sarebbe voluto per
risolverli autonomamente studiano la programmazione per win?....Mesi!!!
Grazie per i nuovi suggerimenti, per un po' non vi disturberò più!
Ciao, Fulvio.


"pascal".....
Non ho capito cosa intendi.
Ciao, Giuseppe
PS. Evita di postare delle copie dei messaggi nella mia mailbox

Newsgroup: it.comp.lang.c
Titolo: Http in  C?

 
Sapete se sia possibile in C, aprire delle connessi�ni Http tramite URL,
scaricare una pagina in testo ASCII oppure una foto.jpeg
 
Questo e OT:
 
Sto tentando di utilizzare delle librerie DLL e Lib di Windows.
Ho provato ad importarle tramite MinGW, ma non ci si riesce.
Qualcuno utilizza MinGW, e s� consigliarmi su come importare DLL o Lib
di Windows?
 
 
Gr�zie
 
Ciao
 
 
 


 
Basta usare i socket
 


 
Dove li trovo? sono file.h e lib? Quante versioni sono?
 
Ciao 
 
 

 Questo e OT:
 
No, è solo stupido. Leggi i manuali.
 
 
 
 

 No, � solo stupido. Leggi i manuali.
 
 
Ho letto:
 
http://www.mingw.org/wiki/CreateImportLibraries
 
 
http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs
 
 
 
 
Ma non funziona!
 
 
 
Ciao
 
 


Dipende, visto che usi windows con mingw si possono usare i socket unix 
od i socket windows

 
 
Non importi le DLL (a meno di non utilizzare delle API specifiche di 
windows), importi le lib di supporto, usando l'opzione opportuna del 
compilatore (-lcurl, ad esempio importa libcurl.lib se è salvata in una 
directory "nota").  Trovi tutte le opzioni nel manuale di mingw, oppure 
dell'IDE che usi (se ne usi uno).
 
 
[1]
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_socket.h.html
 
 
[2]
http://www.w3.org/Protocols/rfc2616/rfc2616.html
 
oppure
http://www.ietf.org/rfc/rfc2616.txt
 
 
[3] 
http://www.ietf.org/rfc/rfc2616.txt
 
 
 
 
Ciao  Manlio

 
Ok  ti ringr�zio.
 
Curl l' avevo gi� vista, ma mi pare un p� troppo prolissa rispetto alla lib
Windows.
 
Ciao
 
 
 
 

 Ma non funziona!
 
 
Per forza! Non c'entrano un cavolo. Prova piuttoasto a imposare
PATH e LIBPATH,  impèaparare come si usa la direttiva #include
ed a leggete il manuale del compilatore e del linker.
 
PS Già ti hanno detto come si fa a linkare una libreria.


[ CUT ]
Basta fare una ricerca e qualcosa si trova
Ad esempio oltre alla nominata libcurl esiste anche WinHttp oppure libghttp
 
Oppure, se proprio non ci si vuole smazzare con una libreria basta una 
chiamata  ad un programma chiamato wget
 

 PS Giŕ ti hanno detto come si fa a linkare una libreria.
 
Il file.h di urlmon e in MinGW\include, anche la urlmon.lib e nella cartella
mingw32\lib.
Da quello che ho letto sul sito MinGW, se si utilizza -L. cerca in tutte le 
cartelle
 
Ma il PATH E LIBPATH , dove li trovo?
 
Ciao 
 
 

 
 
Quando linko questa benedetta lib di Windows dell'SDK, urlmon.lib
capita questo:
 
G:\MinGW\bin\mingw32-gcc.exe -o UrlMon.exe 
UrlMon.c -LG:\MinGW\mingw32\lib -lconio LG:\MinGW\mingw32\lib -lUrlmon
 
G:\MinGW\bin\mingw32-gcc.exe -o UrlMon.exe 
UrlMon.c -LG:\MinGW\mingw32\lib -lconio
In file included from UrlMon.c:48:
G:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/Urlmon.h:383: 
error: s
yntax error before "uCLSSPEC"
G:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/Urlmon.h:385: 
error: s
yntax error before '*' token
 
Ciao
Newsgroup: it.comp.lang.c
Titolo: Re: [VERY NIUBBO] Comincio male..

 int....
Perché ?
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 void main(void)
Perchè dichiari la funzione main come void?
Prova a scrivere
main(){
... il programma
}
--
Questo articolo e` stato inviato da 
http://www.undergroundsecurity.net
Segnala gli abusi ad 
ab...@undergroundsecurity.net


Ah non sapevo questo fatto...da dove ho preso il codice veniva detto che 
mettre:
void main(void);  --> ogni programma deve avere un main
void main(void) --> senza il ; finale serve a far capire al compilatore che 
la funzione main() inizia da quella riga.
Mi pare un pò strano che una funzione come main debba ritornare un valore 
int....non dovrebbe avere un altro significato o costituire una eccezione?
Grazie a tutti!

 
Lo standard definisce main() come funzione che ritorna un intero:
int main(void);  oppure  int main(int, char **);


 od anche int main(int argc, char *argv[], char *envp[]);
No, lo standard ISO del linguaggio non prevede alcuna forma main() con
_tre_ parametri.  Viene però riconosciuta come una "common extension" (e
_deve_ essere documentata, in quanto tale).  L'uso di envp, quindi, è
limitata ai sistemi che lo supportano.


 da il risultato giusto (ovvero scrive Ciao Ciao)
Infatti quello che il compilatore ti segnala è un "warning", non un fatal
error, ovvero è come se sollevasse una bandierina, ma non ti impedisce di
avere del codice funzionante.  Il problema del valore di ritorno di main()
è legato a questioni di interfaccia con il sistema operativo.



Ok ci provo, hai provato a togliere un void ?(magari togli quello con il
punto e virgola finale) mi sembra che ce ne sia uno di troppo e prova con
int main(void)  al posto di void main (void)
Ciao Morpheus

 int main(void);  oppure  int main(int, char **);
od anche int main(int argc, char *argv[], char *envp[]);
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 }
Secondo il nuovo standard, bisogna specificare sempre il valore di ritorno
di una funzione (non c'è più la deduzione implicita del tipo int), quindi
è bene scrivere:
int main(...)
{
}
...


Ho provato a scrivere il famoso "Ciao Mondo" ma con il Dev C mi da un errore 
e non compila.
Il codice è questo:


Newsgroup: it.comp.lang.c
Titolo: Libreria crt

    Ho urgente bisogno di sapere quale libreria e quali sono i comandi per
la gestione dell'output sullo schermo.
Per intenderci la libreria "crt" del Pascal.
Mi serve qualcosa tipo "clrscr" che pulisce lo schermo, "gotoxy(x,y)" che
posiziona il cursore alle coordinate x e y, "window(x1,y1,x2,y2)" che apre
una finestra di dimensioni x1,y1,x2,y2 ecc.
Qual'č tale libreria e quali sono i rispettivi comandi?
Ho fatto gli esempi in Pascal perchč č l'unico linguaggio che conosco piů o
meno bene, e sto tentando di imparare il C facendo anche delle traduzioni di
programmi in Pascal da me scritti.
Grazie a tutti e ciao.
--
Davide Petilli
dpet...@libero.NOSPAM.it
Per rispondermi leva NOSPAM dal mio indirizzo!

 Ho fatto gli esempi in Pascal perchè è l'unico linguaggio che conosco più

Newsgroup: it.comp.lang.c
Titolo: informazioni borland c++ builder 6

salve a tutti.
 il  borland c++ builder 6 e' un compilatore in grado di compilare anche
sorgenti in c.


?? Cosa è, una domanda o un'affermazione? ;-) se è una domanda, allora la risposta è si, anzi,
qualunque compilatore C++ è anche in grado di compilare sorgenti C.
Ciao,
Cecco

sempre a proposito di  borland builder 6 scrivo un programma in c con f9 lo
compilo questo mi tira fuori un
file applicazione a cui assegna l'icona della borland (devrebbe essere un
exe?).
secondo logica questo e' il file eseguibile creato dalla compilazione del
sorgente ed io lo eseguo solo che parte e non fa niente cioe' si richiude
da solo. questo programma deve ricevere un imput da un utente tramite scanf
quindi neanche a dire che viene eseguito senza far vedeere niente sullo
schermo.
sapete dove trovare una guida in italiano su questo compilatore.
io non ho trovato niente.
grazie a tutti
allego il file applicazione creato

Newsgroup: it.comp.lang.c
Titolo: Funzione per leggere un testo suddiviso in più righe

Vi riporto l'esercizio:
Scrivere una funzione che conta il numero di occorrenze delle lettere
dell'alfabeto inglese presenti nella stringa passata come argomento.
Il prototipo di tale funzione sarà: void occorrenzeCaratteri(char a[],
int occorrenze[]); dove occorrenze[0] contiene il numero di volte che
compare 'a' o 'A', mentre occorrenze[1] contiene il numero di volte in
cui compare 'b' o 'B', ecc.
Scrivere una funzione che stampa a stdout il vettore occorrenze: void
stampaOccorrenze(int occorrenze[]).
Scrivere un programma main che, letto un testo da stdin per righe,
visualizzi a stdout il numero di occorrenze delle singole lettere
dell'alfabeto presenti nel testo.
Questo è ciò che cono riuscito a fare finora:
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#define LIMITE 100
void occorrenzeCaratteri(char a[], int occorrenze[]){
		int i;
		for (i = 0; i < LIMITE; i++){
			if (a[i] < 65 && a[i] > 90)
				occorrenze[toupper(a[i]) - 65]++;
		}
}
void stampaOccorrenze (int occorrenze[]){
	int i;
	for(i = 0; i < 26; i++)
		printf("\n%c = %d", 'a' + i, occorrenze[i]);
}
int main() {
	int occorrenze[26];
	char a[LIMITE];
	printf("Inserire una o piu' righe di massimo %d caratteri l'una: ",
LIMITE);
       // Qui dovreste aiutarmi... :D
	system("PAUSE");
	return 0;
}
Il problema sta nel main. Avrei bisogno di una mano per sistemarlo:
vorrei fare in modo che il programma legga un testo una riga alla
volta (finchè ce ne sono) e per ogni riga provveda ad chiamare la
funzione occorrenzeCaratteri. Una volta finite tutte le righe chiami
stampaOccorenze che mi dovrà dare il conteggio totale delle lettere
riferito a tutte le righe che l'utente ha passato da console...insomma
quello che chiede l'esercizio. :)
Qualcuno sa darmi un suggerimento?
Grazie mille!


http://www.manpagez.com/man/3/fgets/
:)
in generale qualcosa di simile (senza controlli di alcun genere):
char buf[MAX_BUF];
while (fgets(buf, MAX_BUF, stdin)) {
    /* buf contiene la riga */
}
Ciao!
Newsgroup: it.comp.lang.c
Titolo: Tipo boolean, come lo definireste voi?

Ciao ragazzi, sto riprendendo il C dopo un bel po' di anni
mi chiedevo, secondo voi qual'è il miglior modo di definire un tipo 
booleano, o qual'è quello che usate voi?
Ad esempio:
typedef enum {false, true} boolean
-- 
______________________________
  Omega
 
http://gnammo.altervista.org
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

 booleano, o qual'è quello che usate voi?
Ciao, cerca qualche messaggio piu sotto "Bit field" forse quella discussione 
ti può essere utile. 

 typedef enum {false, true} boolean
Lo standard piu' recente (C99) ha aggiunto un tipo booleano:
#include <stdbool.h>
bool b;
b = false;
b = true;
Se hai un compilatore che non implementa il C99, puoi fare cosi':
typedef int BOOL;
#define FALSE 0
#define TRUE (!FALSE)
ciao
Giacomo

 Giacomo
Grazie a entrambi :)


 typedef enum {false, true} boolean
Si potrebbe anche definire un tipo booleano, ma che senso avrebbe, in
C?
In C lo 0 (ZERO) è falso, tutti gli altri valori sono veri.
/* Vera */
int a = 10;
/* Falsa */
int b = a < 10;
/* Vera */
int c = a*1;
/* Anche un puntatore è vero o falso */
char *p;
if (p = (char *)malloc(512))
{
  /* Stuff here */
  free(p);
}

Newsgroup: it.comp.lang.c
Titolo: Dubbio su notazione puntatori

Scusate la banalità,ma perchè si scrive:
int *Ptr;
e non
int* Ptr; 
visto che poi se devo assegnare l'indirizzo di una variabile a Ptr 
scrivo:
Ptr = &y;
e non
*Ptr = &y ?
-- 
Nick Belane

 int* Ptr;
Vanno bene entrambi i modi
Alex


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



Ai fini del compilatore e' indifferente.
Ai fini dei programmatori, evidentemente, non e' cosi'.
E' una questione di stile.
Personalmente, come ho detto + volte, preferisco :
int            *             Ptr ;
mi sembra + leggibile.
--
Andrea Laforgia - walkietalkie(at)
libero.it
#exclude <windows.h>

mi sembra + leggibile.
Ovviamente hai un monitor a 24"
ciao, acc.   
a...@libero.it
Newsgroup: it.comp.lang.c
Titolo: abbinamento tra puntatori

ho un puntatore (che è un vettore di dimensione N) e vorrei scaricare tutto
il suo contenuto su un altro puntatore di dimensione N. è corretto scrivere
un while del tipo :
while i<=N
punt1[i]=punt2[i];
è corretto?
se lo fosse allora non capisco dove sbaglio nel programma.....
grazie

č corretto?
Manca l'incremento di i, va in loop senza fine.
Inoltre la condizione giusta č i < N.
Il tuo vettore va da 0 a N-1, e non devi perciň andare a scrivere in
punt2[N].
for(i = 0; i < N; i++)
  punt[i] = punt2[i];
Oppure con il while
i = 0;
while(i < N)
{
  punt[i] = punt2[i];
  i++;
}
-- 
Cordiali saluti
  Artemio

 e` corretto?
\
No. E` sbagliata la sintassi oltre al metodo che usi:
for (i = 0; i < N; i++)
	punt1[i] = punt2[i];
oppure, se proprio vuoi un ciclo while:
i = 0;
while(i < N) {
	punt1[i] = punt2[i];
	i++;
}
Ricorda che in un array di N elementi l'indice va da 0 a (N - 1).
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Porc i' mond che cio' sott i piedi!
V. Catozzo

punt1[i]=punt2[i];
Un puntatore non e' un array, pero' se a questo puntatore allochi (o
assegni) una certa area di memoria (di dimensione idonea) puoi usarlo
quasi come se fosse un array.
Questo comunque, sia che tu usi i puntatori come tali, sia che cerchi
di usarli come array (per quanto possibile ovviamente).
Nel tuo caso particolare la sintassi:
array[posizione]
viene espansa in
*(array+posizione)
il che ti rende indifferente usare un array (o meglio l'indirizzo
simbolico associato al primo elemento dell'array) o un puntatore...
anzi, e' esattamente la stessa cosa.
Se no puoi lavorare direttamente con i puntatori (perdendo pero' il
riferimento originale... ma non e' difficile fare in modo che questo
non succeda).
<CODE rif="K&R, pag; 133,134">
for (i=0; i<N; i++)
    *punt1++ = *punt2++
</CODE>
-- 
Mox

 č corretto?


 ciao
ciao e grazie


  scrisse:

Newsgroup: it.comp.lang.c
Titolo: Coefficienti

Salve,
sono nuovo del ng quindi spero che il mio messaggio non sia OT. Sto
scrivendo un semplice programma per la risoluzione di equazioni di secondo
grado. Sono riuscito a completare il programma con successo, infatti
funziona bene, ma ora vorrei un poco migliorarlo.
Nell'esecuzione del programma ho scritto che dopo l'inserimento dei
coefficienti a, b e c dovrebbe visualizzare l'equazione risultante, quindi:
  printf("L'equazione diventa:\n%dx^2 + %dx + c = 0",a,b,c);
Ora però, come ho detto vorrei cominciare a fare qualcos'altro, vorrei che
il programma omettesse il coefficiente se questo è ugule a 1, mentre che
omettesse tutto in monomio se il coefficiente fosse 0. Cioè non dovrebbe
scrivere questo:
  L'equazione diventa:
  1x^2 + 0x + 1 = 0
ma:
  L'equazione diventa:
  x^2 + 1 = 0
Non so se mi sono spiegato bene. Io ci ho pensato parecchio ma non avrei
fatto altro che usare gli if, anche se sarebbe impossibile in quanto i casi
sarebbero troppi ovviamente. Conoscete un altro modo per fare questo?
Grazie e scusate il disturbo.
Ramses

 sarebbero troppi ovviamente.
Perchč troppi? Basta fare cosě:
printf("L'equazione diventa:\n");
if (a==1)
    printf("x^2);
else
    printf("%dx^2",a);
if(b==1)
    printf("+x");
else
        if(b!=0)
            printf("+%dx",b);
if(c!=0)
    printf("+%d",c);
printf("=0");

omettesse tutto in monomio se il coefficiente fosse 0. Cioè non dovrebbe
Beh, se sai che si tratta di equazioni di secondo grado, i casi non sono
poi molti; basterebbero tre "if".
    if (a) printf((a == 1) ? "x^2" : "%dx^2", a);
per ogni coefficiente. C'è però un altro problema: se i coefficienti
sono negativi, rischi di scrivere polinomi in questo modo:
    3x^2 +-2x +-1
ma questa è un'altra storia. :-)
-- 
Saluti,
    Mardy

 wrote in message
news:9cv9iu$dtn$1...@pegasus.tiscalinet.it...

Newsgroup: it.comp.lang.c
Titolo: Bill Gates e Silvio Berlusconi

sono le due persone che ammiro e adoro.
perché voi potrete dire tutto, tranne che i due succitati uomini siano degli
incapaci.
diciamo che sono darwinisticamente superiori.
parlano i fatti.
lalalalalalallaaaaaaaaaaaaaaaaaaaaaŕ!
jbikqewqchjbcewq
cdwqgjdewdewjhvew
eqc    eq    hjqhjeqcqw
ewq    wjew    ewqhjwq
w    wkwq    hjwq    ewqw
w    w    wq    rwq    jrewc    wvr
bqbqbbjbba tb kl n jl lňtebnqňgkbtrelkbjtelňkqegqre
gbqerhklrenglwqnqregqfr
gqre
gq
regq
eg
rq
rewg
qreh
tre
jreq
sě!

> sono le due persone che ammiro e adoro.
correggo: sono le *uniche* due persone.....

 wrote
Ma sparisci per favore......
Tommy


mi vengono in mente solo cinque letter: *PLONK*
PS: togliti quel nickname, non sei degno di portarlo.
Adieu,
-- 
Lestat de Lioncourt  -- a.k.a --  Ciro Mattia Gonano
 Undergraduate student in Computer Science at University of Bologna
 IHGGer #1049   <=>  ICQ#: 52631406   <=>   URL: 
http://www.CS.UniBO.It/~gonano
 Debian admin at 
Students.CS.UniBO.It
 <=> look at headers for my JabberID & GPG

 Adieu,
Potrebbe essere il suo vero nome... :-)

mi chiamo Sergio.

> Potrebbe essere il suo vero nome... :-)
mi chiamo Sergio.


Caro Sergio sei un po' OT,
vedi di postare i tuoi gusti sugli uomini altrove, esistono tanti ng
dove farlo.

Forse č meglio se ti togli dai co***oni.

Newsgroup: it.comp.lang.c
Titolo: Gestione Timeout multipli

Ciao, devo realizzare un'applicazione ftp che invia un file suddiviso in
pacchetti, inviati N alla volta, in linguaggio C ovviamente.
Ogni pacchetto dovrà avere un timeout "personale" che al suo scadere indica
la non ricezione del pacchetto dal destinatario e quindi la necessità di
ritrasmissione.
Volevo chiedere qualche consiglio su che funzione utilizzare visto che
"alarm" gestisce 1 unico timeout mentre io devo spedire contemporaneamente
più pacchetti e monitorare il timeout di ognuno in maniera indipendente
senza bloccare l'applicazione che comunque deve attendere i segnali di
acknowledgement che conferma l'arrivo dei vari pacchetti.
Mi sapere aiutare?
Grazie
Filippo

 ha scritto nel messaggio
news:42333...@x-privat.org...

Newsgroup: it.comp.lang.c
Titolo: Grafi

Sia G(V,E) un grafo orientato.
G'=(V,E') e' il grafo trasposto di G dove E'={(v,u)appartenente a VxV :
(u,v) appartengano a E}
Quindi G' e G con tutti gli archi inveriti.
Vorrei chiedervi come faccio a costruire il trasposto di un grafo
rappresentato con lista di adiacenza .
Vorrei inoltre avere conferma che il trasposto di un grafo
rappresentato con matrici di adiacenza equivale alla trsposta della matrice.
Grazie

 Ciao, Giuseppe

 
righe totali di reply: 84
righe totali di risposta effettiva: 1
..ricorda che uno dei dogmi della programmazione e` l'ottimizzazione... e magari
datti una riletta all'RFC 1855 e al Quote-HOWTO... ^__^
Adieu,
-- 
Lestat de Lioncourt                               |          Ciro Mattia Gonano
  JabberID: 
les...@jabber.students.cs.unibo.it
    |    Undergraduate Student in
  ICQ#: 52631406                                  |         Computer Science at
  URL: 
http://www.CS.UniBO.It/~gonano
             |       University of Bologna
            <powered by Linux Slackware 8.1 on Kernel 2.4.18-xfs>

rappresentato con matrici di adiacenza equivale alla trsposta della matrice.
Sì, è così.
-- 
Ciao, Giuseppe
Newsgroup: it.comp.lang.c
Titolo: La domanda più stupida del millenio

Sono sempre quello alle prime armi di C 
ora basta teoria prendo "l'arma" imn mano, dopo numerosi tentativi
sono riuscito ad aprire DJGPP stavo per stappare una bottiglia per
festeggiare , inizio a digitare il mio primo programmino ....ma ecco
il dramma devo digitare la parentesi graffa DOVE STA?? non c' č nella
fantascientifica tastiera 105 tasti e non ha la parentesi graffa .....
apro RHIDE ma no so come fare la parentesi famosa
sfido chiunque a formulare domanda piů stupida
mi sento un "utente schimmia
grazie
Paolo

Ne ho sentite di + stupide, non ti preoccupare :)
piuttosto:
}  (tieni premuto ALT e premi in ordine 1-2-5 )
{ (tieni premuto ALT e premi in ordine 1-2-3)
Ciao by Tdx

...

sapessi come conosco la sensazione...
secondo me e' fatto apposta, cosi' capisci subito cosa vuol dire 'sbattere
la testa'.
(Alt e il tastierino numerico, i numeri normali non vanno bene)
Alt-123 e Alt-125,
ciao

 
Puoi usare le seguenti sequenze di 3 caratteri (il compilatore le
sostituisce con il carattere indicato):
??=		#
??(		[
??/		\
??)		]
??'		^
??<		{
??!		|
??>		}
??-		~
oppure inserire direttamente il codice ASCII con ALT+123 per '{' e ALT+125
per '}'



Ahem , sulla mia tastiea (e credo in tutte le altre) basta premere
SHIFT + ALT + [Tasto della Parentesi Quadra (quello affianco alla P)]
Cosi' facendo esce la parentesi graffa.. modo piu' semplice direi..
-- 
      Adalberto Simeone -==(U.D.I.C.)==- Avenger Dragon
          E-Mail: 
fn5...@flashnet.it
  UIN: 1414193
       Better to reign in Hell than to serve in Heaven
 
http://www.multiplayer.it/presstart

> SHIFT + ALT + [Tasto della Parentesi Quadra (quello affianco alla P)]
Sono sempre in ritardo... che ci volete fare.
Io ho sempre usato ALT-1-2-3, comunque sulla mia tastiera bisogna
schiacciare SHIFT-ALTGR (quello di destra) - [
Per la prima opzione devo usare l'ALT di sinistra, mentre per la seconda
quello di destra. Strano no?
Alessandro Monti
P.S.
Ma perchè bisogna rompersi la testa per queste cose?

quello di destra. Strano no?
Perchè quello di destra è l'Alt grafico, evidentemente diverso dall'Alt di
sinistra.
--
Francesco Trotta
http://space.tin.it/computer/ftrotta
Elimina "x_" dal mio indirizzo per mandarmi
un messaggio direttamente







 sinistra.
Ti ringrazio per la quantità di risposte (o è il mio Outlook che l'ha
quadruplicato?).
Comunque se la funzione dei due ALT è diversa perchè non li hanno chiamati
in modo diverso? Per esempio ALT e GRAPH.
Io a dire la verità li ho sempre considerati come tasti ripetuti, al pari
degli SHIFT e CTRL, e a dire il vero mi accorgo adesso che ALTGR-F non apre
il menù File. Ma che senso ha? Un tasto intero solo per usarlo in
combinazione con 6 altri tasti (su 102 almeno) e basta? Mi sembra uno
spreco.
Purtroppo siamo OT.
Alessandro Monti

in modo diverso? Per esempio ALT e GRAPH.
Sono proprio due tasti diversi.

Newsgroup: it.comp.lang.c
Titolo: Ricerca su file & set di istruzioni

Salve.
ho in mente di  fare un programmino che legge e memorizza dei dati su un
file ascii secondo questa regola:
CAMPO1 CAMPO2 CAMPO3
un dato per riga.
Ora, premesso che lavoro in ambiente linux,  avrei bisogno di 1 consiglio e
di un chiarimento:
consiglio> quale set di istruzioni mi consigliate di usare partendo dal
persupposto che le operazioni che devo fare sul file sono essenzialmente
ricerca per CAMPO1 e scrittura di un nuovo dato (non mi interessa l'ordine)?
(famiglia read,write ecc.. per intendersi o altro?). 
chiarimento> Se non e' troppo disturbo mi potreste spiegare  a cosa serve il
campo void *buf nella definizione 
size_t read(int fd, void *buf, size_t count);
Sto cercando degli esempi ma per ora non li ho trovati...
grazie e a presto...
Vi][oZ 
-- 
Per rispondere togliere NONSCASSA da reply-to.

 
A parte che usare il man non fa mai male (man 2 read, in questo caso):
int fd -> e' il file descriptor del file da cui vuoi leggere;
void* buf -> e' il buffer, _precedentemente_allocato_ dove metti
quello che leggi dal file
size_t count -> e' la dimensione di quello che leggi, che non deve
essere maggiore della dimensione del buffer
--
 Ciao, Luca.
 Reply to 
luca....@tiscalinet.it

 size_t read(int fd, void *buf, size_t count);
[root@fokhouse /root]# man read | col -b | grep -A7 ^SYN | grep -v ^$
SYNOPSIS
       #include <unistd.h>
       ssize_t read(int fd, void *buf, size_t count);
DESCRIPTION
       read()  attempts  to  read  up  to  count  bytes from file
       descriptor fd into the buffer starting at buf.
[root@fokhouse /root]#
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

 Reply to 
luca....@tiscalinet.it
Quello che non mi torna  e' xche' il puntatore buf sia di tipo void...
Che vuol dire, che cosi' posso usare un buffer del tipo che mi serve senza
altri specificatori?
A proposito e' proprio guardando le man che mi e' venuto il dubbio, anche
perche' il nume buf e' abbastanza esplicativo di suo...
bye bye


 perche' il nume buf e' abbastanza esplicativo di suo...
Allora va bene ;-)

Newsgroup: it.comp.lang.c
Titolo: STAMPARE DAL C senza utilizzo del DOS

Salve a tutti,
dovendo stampare un file di dati (che e' in formato testo) da un
programma DOS in Windows95, mi sono avvalso di una chiamata esterna
tramite la system al comando  "print" se DOS.
Finche' c'e' il DOS nessun problema ma quando il programma viene
eseguito da un Pc con W95 senza DOS, ovviamente non stampa piu'.
Come posso risolvere tale problema, il programma in questione e' stato
realizzato in Borland C++, come posso indirizzare i miei dati
direttamente alla stampante?
Il Sistema Operativo e' sempre W95.
Vi ringrazio per le eventuali risposte.
Emilio
--
Posted from 
mailhost.univaq.it
 [192.150.195.13]
via Mailgate.ORG Server - 
http://www.mailgate.org

...


Emilio Merlino wrote:

Salve a tutti,

dovendo stampare un file di dati (che e' in formato testo) da un

programma DOS in Windows95, mi sono avvalso di una chiamata esterna

tramite la system al comando  "print" se DOS.

Finche' c'e' il DOS nessun problema ma quando il programma viene

eseguito da un Pc con W95 senza DOS, ovviamente non stampa piu'.

Come posso risolvere tale problema, il programma in questione e' stato

realizzato in Borland C++, come posso indirizzare i miei dati

direttamente alla stampante?

Il Sistema Operativo e' sempre W95.

 

Fai una chiamata all' interrupt della stampante: ti mando la funzione che
stampa una stringa (va bene sia per dos che win95)

 

 

int Stampa_stringa(char *str)

{

  union REGS regs;

  int i=0;

  int len=strlen(str);

  for (i=0;i<len;i++)

  {

    do

    {

      regs.h.ah=2;

      regs.x.dx=0;

      int86(0x17,&regs,&regs);

      if ((regs.h.ah | 215)!=215)

        return 0;

    }

    while ((regs.h.ah & 128)!=128);

    regs.h.ah=0;

    
regs.h.al
=str[i];

    regs.x.dx=0;

    int86(0x17,&regs,&regs);

    if ((regs.h.ah | 215)!=215)

      return 0;

  }

  return 1;

}

Attenzione che se usi win95 la stringa non viene stampata immediatamente
ma viene bufferizzata da win.

ciao.
Newsgroup: it.comp.lang.c
Titolo: Aiuto!: calloc e array

Ciao a tutti,
devo allocare un array bidimensionale e ho provato le seguenti righe:
void f(void)
{
...
double* p;
double rear[MT.mesh_y][MT.mesh_x];
 p = (double*) calloc((MT.mesh_x)*(MT.mesh_y), sizeof(double) );
rear =p;
...
}
dove MT.mesh_y e MT.mesh_x sono long unsigned globali che vengono
inizializzati  altrove prima della chiamata a qs. funzione.
Il compilatore segnala diversi errori tra cui:
error C2057: expected constant expression
error C2466: cannot allocate an array of constant size 0
error C2133: 'rear' : unknown size
error C2440: '=' : cannot convert from 'double *' to 'double [][1]'
devo usare per forza i puntatori? come faccio?
Angelo

 dove MT.mesh_y e MT.mesh_x sono long unsigned globali che vengono
 void f(void)
 {
 ...
int i;
/* dichiari un puntatore a puntatore */
 double** p;
/* ...poi un altro */
double **rear;
/* allochi lo spazio per MT.mesh_y puntatori a double in questo modo */
  p = calloc((MT.mesh_y), sizeof(double*) );
/* adesso hai MT.mesh_y puntatori a double ...li prendi uno ad uno e allochi
sufficiente spazio per ognuno in modo che punti ad un array di MT.mesh_x
double */
for(i=0;i<MT.mesh_y;i++)
p[i]=calloc(MT.mesh_x,sizeof(double));
/* fatto! */
 rear =p;
 ...
 }
ciao!

 ha scritto nel messaggio
news:99sihc$6hh$1...@lacerta.tiscalinet.it...
