mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: da C++ a C

Ciao a tutti,
Esiste un modo per rendere visibili da C alcune funzionalita' scritte in
C++?
Ho una libreria scritta in C++, e mi e' stato chiesto di fornire delle API
accessibili anche dal C, io dei metodi della classe ho creato altrettante
funzioni, pero' fino ad ora sono stato costretto a linkare usando il g++ e
non gcc: e' cosi, non ho speranze?
Grazie,
           Didimo
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 non gcc: e' cosi, non ho speranze?
Potrebbe essere un problema di mangling dei nomi delle funzioni che in
"C" e' diverso dal "C++".
Dichiara i prototipi delle funzioni all'interno di un blocco extern "C"
tipo:
extern "C"
{
  prototipi delle funzioni
}
C:\>iao Angelo


 C++?
Per esempio questo funziona sotto gcc/g++ ma penso anche gli altri:
FILE = miosort.cpp
=======================================
#include<algorithm>
extern "C" void MySort(int *, int);
void MySort(int V, int n)
{
   std::sort(V+0,V+n);
}
=======================================
compili con g++ -O3 -c miosort.cpp  e ottieni miosort.o
FILE = main.c
========================================
#include<stdio.h>
extern void MySort(int *, int);
int main()
{
    int N,i,*V;
    N=100;
    V=calloc(N,sizeof(int));
    for (i=0; i<N; i++) V[i]=((i+55)*192)%1121;
    MySort(V,N);
    printf("%d\n",V[7]);
    return 0;
}
===============================================
e compili con
gcc -O3 main.c miosort.o -o maino
Insomma il trucco sta nel "convicere" il C++
a scrivere nel *.o le informazioni per il link come
piacciono al C.
Questo in certi casi non e' pero' possibile, per
esempio se stai usando l'overloading, perche' non
puoi esportare verso il C due funzioni con lo stesso
nome.
ciao,
g.

Grazie a tutti, ciao. :-)


Newsgroup: it.comp.lang.c
Titolo: flat file cos'e'?

salve
come da oggetto
grazie

 come da oggetto
uno che puoi modificare col blocco note.
-- 
By ZeD


:-/ non sono aggiornato sulle potenzialità del "blocco note", ma direi
che qualsiasi file è modificabile con il "blocco note".
Che io sappia, un "flat file" (ovver file piatto) è, nell'ambito dei
database, un file contenente record non relazionati, ovvero solo dati
e nessuna informazione sulla struttura.
Ciao!

FtM wrote:

eh, appunto.
-- 
By ZeD



appunto cosa? se per "uno che puoi modificare col blocco note"
intentevi un file non binario (plain-text) allora è sicuramente falso.
un file in formato XML è plain ma sicuramente non flat.
Ciao!
Newsgroup: it.comp.lang.c
Titolo: strtok e token mancanti

Ciao,
ho un programma del tipo:
main()
{
char riga[255] = "aaa,bbb,ccc,,ddd";
char *c1, *c2, *c3, *c4, *c5;
 
    c1 = strtok(riga, ",");
    c2 = strtok(NULL, ",");
    c3 = strtok(NULL, ",");
    c4 = strtok(NULL, ",");
    c5 = strtok(NULL, ",");
    printf("c1=%s\nc2=%s\nc3=%s\nc4=%s\nc5=%s\n", c1, c2, c3, c4, c5);
}
Mi piacerebbe avere in output:
c1=aaa
c2=bbb
c3=ccc
c4=
c5=eee
invece ottengo:
c1=aaa
c2=bbb
c3=ccc
c4=eee
c5=
In pratica, se strtok incontra due delimitatori consecutivi non
ritorna una stringa vuota o "" ma salta i delimitatori finché non li
trova che effettivamente delimitatno qualche cosa.
La qual cosa può tornare utile in alcuni casi, ma in questo
costituisce un problema.
Che si può fare per aggirare l'ostacolo in modo semplice (o, se ciò
non è possibile, anche in modo complicato :-])?
Grazie

 non è possibile, anche in modo complicato :-])?
riscriviti la funzione strtok... 


Qui l'ostacolo viene aggirato, in modo complicato :-)
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c
Titolo: disegnare una finestra

Salve a tutti.
Ho un problemino. Per impare ad usare bene le liste concatenate, sto
facendo un programmino che gestisce nureri interi.Per farlo piu'
carino mi piacerebbe visualizzare i dati in ingresso e in uscita dal
programma in una finestra.
cosa mi consigliate. Grazie mille giulio

 programma in una finestra.
Non e' per risultarti antipatico, ma se stai facendo un programma per
imparare le liste concatenate, "disegnare una finestra" non fara' altro che
distrarti e farti concentrare su altro....
Se vuoi perdere tempo e fare un programma con dialog con tanto di listbox
che rappresenta gli interi nella tua lista concatenata etc... ok, libero di
farlo, ma come be tu sai con il C da solo non si puo' fare... Devi
appoggiarti a qualche cosa di esterno. Ad esempio su windows alle win32
APIs.
Come noti il problema quindi non e' piu' il C ma la programmazione windows
(o linux etc...). In altre parole saresti OT su questo NG.
Tommy

Beh se vuoi fare una cosa carina e semplice -> ncurses !!
Newsgroup: it.comp.lang.c
Titolo: Parametro di tipo void in input a funzione

Buongiorno,
sto studiando un programma già fatto e mi chiedevo questo:
se ho una funzione, che si chiama ad esempio salva_file, che
differenza c'è tra i seguenti prototipi?
1) int salva_file()
 e
2) int salva_file(void)
Cosa comporta avere un parametro di tipo void in input?
Grazie, Emilio.


Significa che la funzione non si aspetta parametri.  I due compilatori 
sono equivalenti, però attenzione perché qualche compilatore 
strettamente ANSI potrebbe segnalare errore nel caso 1).
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

 I due compilatori 
Sorry.  Intendevo scrivere i due prototipi


Emilio ha scritto:

La differenza è sostanziale, quei due prototipi sono uno l'opposto 
oncettuale dell'altro:
una funzione int func(void) non ha parametri in ingresso, mentre int 
func() vuol dire che accetta qualsiai parametro e di qualsiasi tipo in 
ingresso. L'equivalenza delle due scritture la si ha solamente nel 
linguaggio C++, NON C.
Prova :-)
phempto

 ingresso. 
Non ho mai trovato questa distinzione. Hai riferimenti ?
Pero'  qualcosa non mi torna. Se fossero due tipi diversi, perche'  se 
dichiaro un puntatore a function di prototipo senza argomenti e uno a f. 
  con argomento void  e poi assegno uno all'  altro non  ottengo nessuna 
diagnostica di "incompatible pointer type" ?
Giorgio

 diagnostica di "incompatible pointer type" ?
Perchč con una dichiarazione di questo tipo
int (*func)(void) noi stiamo dicendo che la funzione ha un argomento di 
tipo void (ovvero non ne richiede).
Con la seguente invece
int (*func)() noi stiamo dicendo che func + un puntatore a funzione, 
senza dire assolutamente niente sul/sugli argomenti, per cui viene 
interpretato come 'qualsiasi cosa', anche void. Da questo la mancata
segnalazione (comportamento correttissimo perņ) del type mismatch.
Guardiamo il seguente listato:
int (*prova1)(void);
int (*prova2)();
int (*prova3)(int);
int (*prova4)(int,...);
int main(void) {
         prova2=prova3;
         prova2(2);
         return (0);
}
Prova2 puņ da ambo le parti di qualsiasi assegnamento tra tra le 
funzioni presenti ed essere richiamata con un qualsiasi numero e tipo di 
argomenti, non viene effettuato nessun type check od altro per lei, cosa 
completamente opposta al comportamento di prova1.
Riassumendo, č il jolly dei puntatori a funzione :)
phempto

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

Qualcuno saprebbe dirmi dove posso trovare questo compilatore?
Grazie.

> Qualcuno saprebbe dirmi dove posso trovare questo compilatore?
Avevo una versione vecchissima su qualche dischetto...
Se vuoi che provi a cercarlo, scrivimi in e-mail.
Ma a quanto ricordo non mi soddisfaceva (era anche una primissima versione),
tant'è che poi avevo acquistato il Turbo C++.
Perchè invece non ti scarichi un compilatore free?
--
Alessandro Monti
Newsgroup: it.comp.lang.c
Titolo: Compilatore per K6

Qualcuno conosce un compilatore, possibilmente free, che compila programmi
ottimizzati per processori K6 e > (K7)?
Grazie
Vincenzo

...


Newsgroup: it.comp.lang.c
Titolo: Problemi installazione

Sono uno studente alle prime armi con il C; avrei un dubbio riguardo
l'installazione del compilatore C/C++ (5.5) della Borland:come suggeritomi
dal professore che tiene il corso ho aperto il file autoexec.bat: il
problema è che precedentemente avevo installato un compilatore
Java(Kawa),quindi il file autoexec.bat si presenta così:
@C:\PROGRA~1\NORTON~1\NAVDX.EXE /Startup
@ECHO OFF
REM mode con codepage prepare=((850) c:\windows\COMMAND\ega.cpi)
REM mode con codepage select=850
keyb it,,c:\windows\COMMAND\keyboard.sys
SET PATH=%PATH%;C:\jdk1.2.2\bin
SET CLASSPATH=.;C:\JAVA
A questo punto dovrei aggiungere in coda alla impostazione della variabile
d'ambiente PATH il percorso:
C:\Programmi\Borland\Bcc55\bin
per poi andare ad creare un file di testo con nome bcc32.cfg che contenga le
seguenti due linee:
-I"c:\Programmi\Borland\Bcc55\include"
-L"c:\Programmi\Borland\Bcc55\lib"
e creare un file di testo con nome ilink32.cfg contenente la seguente linea:
-L"C:\Programmi\Borland\Bcc55\lib"
Nessun problema per le ultime due operazioni.Il mio dubbio sorge però su
dove aggiungere o modificare per inserire il percorso
C:\Programmi\Borland\Bcc55\bin alla impostazione della variabile d'ambiente
PATH,essendo già impostato in quel modo.
Grazie a chiunque mi darà una mano!
Alberto

Non ho capito il tuo problema.... fai:
SET PATH=%PATH%;C:\Programmi\Borland\Bcc55\bin
dopo quello del java
Il Razziatore,
The Only Good Windows in an uninstalled Windows
-----------------------------------------------
E-MAILs : 
razzi...@usa.net
 (Primary),
 
IlRazz...@netscape.net
 (for Attachent)
WEB     : 
http://www.razziatore.dns2go.com/
ICQ     : 67552596


Dopo SET CLASSPATH=.;C:\JAVA aggiungi la riga
SET PATH=C:\Programmi\Borland\Bcc55\bin;%PATH%
Nei files *.cfg, se non hai spazi nei percorsi, puoi togliere i doppi apici.
HTH gfb
Newsgroup: it.comp.lang.c
Titolo: Problema con formattazione testo di stdio.h

Ciao newsgroup,
voglio vedere se qualcuno qui riesce a risolvermi un problema annoso con cui
combatto da tempo. Il problema penso sia proprio di visual C++ per windows.
Usando le varie funzioni di stdio.h per la gestione dei files, ho notato che
il carattere "a capo" associato al numero 10 viene sempre registrato
fisicamente come la coppia di caratteri 13 10 (esadecimale 0D 0A).
Se per esempio uso la funzione:
inline void prova()
{
 FILE *p;
 p = fopen("Try.txt","w");
 for (int i=0; i<256; i++) fprintf(p,"%c",i);
 fclose(p);
}
ottengo un file che visualizzato in esadecimale con ultraedit è del tipo:
00 01 02 03 04 05 06 07 08 09 0D 0A 0B 0C 0D 0E 0F 10 ...
La cosa è molto fastidiosa, perché in un mio programma utilizzo un grosso
array di ben determinati record su hard disk, e lo sfasamento dovuto ai
caratteri 0D 0A non mi consente di usare le funzioni fseek(...) o
fsetpos(...) e di trovare il record voluto nell'array.
Per registrare e caricare i record da hard disk utilizzo le funzioni
fread(...) e fwrite(...), ma con fscanf(...) e fprint(...) di caratteri il
risultato è lo stesso.
Gradirei sapere se esiste una soluzione con funzioni di stdio.h, altrimenti
vanno bene anche altre funzioni, specialmente qualcosa di __asm.
Grazie, e ciao a tutti
Claudio

fsetpos(...) e di trovare il record voluto nell'array.
Lo sbaglio che fai e' quello di gestire un file di testo con
una modalita' tipica dei file binari.
Devi aprire il file in modalita' binaria ("wb" per
intenderci e non "w" come flag di fopen) e usare fseek() e
le funzioni simili.
--
Andrea Laforgia - walkietalkie(at)
libero.it
http://www.geocities.com/AndreaLaforgia

 le funzioni simili.
Grazie mille, era proprio quello che cercavo...
ciao
Claudio

Newsgroup: it.comp.lang.c
Titolo: piccolo nuovo

On Wed, 15 Mar 2000 17:26:36 +0100, 
lp...@wanadoo.fr
 (Lpar1) wrote:
sei semplicemente andato OT..non ce ne importa nulla ne se sei
francese, ne se usi un Mac e neppure se vuoi imparare a programmare..a
parete questo benvenuto
Augusto Pucci
Webmaster di Prospektiva On-line
http://go.to/Prospektiva

Spero che abbia fato troppi falli. :)
Espulso!    :-)))
ciao




 wrote:

Perchè avevo fato troppi falli o perchè sono su MacOS o che sono
francese (ma il mio cognome è BARTOLETTI) ?

 francese (ma il mio cognome è BARTOLETTI) ?
... penso tu abbia capito che era uno scherzo! In italiano si dice errori, i
falli sono quelli che fanno i calciatori durante una partita. Su questo
newsgroup sono vietate le discriminazioni di razza, nazionalità e sistema
operativo (anche se si parla di C indipendentemente dal sistema operativo).
A plus
Marco
--
Marco Coppo
University Of Sheffield
FAQ del gruppo: 
http://www.programmazione.it/linguaggi/c/itcomplangc.htm

 Su questo newsgroup sono vietate le discriminazioni di razza, nazionalità
e sistema operativo (anche se si parla di C indipendentemente dal
sistema operativo).
Spero che su questo newsgroup si parla sopratutto in ANSI C, perchè su
fr.comp.lang.c si parla in "Windows" C :) e preferisco il ansi C per la
sua compatibilità.

 sua compatibilità.
Condivido.
EMG
Newsgroup: it.comp.lang.c
Titolo: Compilatore per C

Sarei grato a chiunque potesse indicarmi dove scaricare un compilatore
per il C o anche un manuale
Stefano
Grazie a Tutti in anticipo
--
Posted from 
mta09-acc.tin.it
 [212.216.176.40]
via Mailgate.ORG Server - 
http://www.mailgate.org

 per il C o anche un manuale
Se lo vuoi per DOS cercalo a questo indirizzo:
http://www.delorie.com/djgpp/
EMG

Newsgroup: it.comp.lang.c
Titolo: dove si scarica il gcc?

salve, non ho ancora deciso bene con quale compilatore cominciare, comunque 
non riesco a trovare il gcc. cioe' sono andato sul sito. ma non trovo il 
link esatto. potreste linkarmelo voi?. (non il sito, ma propio il link)  :-)
grazie mille

 link esatto. potreste linkarmelo voi?. (non il sito, ma propio il link)  :-)
In riferimento alla mia risposta all'altro thread:
- se vuoi scaricare il MinGW, porting di gcc per windows, lo trovi qui: 
http://www.mingw.org/
- se vuoi cygwin lo trovi qui: 
http://sourceware.org/cygwin/
- altrimenti c'è anche digcpp - che personalmente non ho mai usato - che 
trovi qui: 
http://www.delorie.com/djgpp/
Ciao,
Giulio
-- 

triller ha scritto:

io uso djgpp (
http://www.delorie.com/djgpp/
)
un prodotto eccellente.
dovrebbe essere
qui':
http://www.delorie.com/djgpp/dl/ofc/dlfiles.cgi/current/v2/
 
(install.exe)
ciao - S
-- 
Postato da Alice Newsgroup: lo usi da web ma con le funzioni del newsreader 
http://newsgroup.alice.it
Gerarchie it, italia, it-alt, tin, it.binari. Unico!
Newsgroup: it.comp.lang.c
Titolo: Grandi numeri

Ciao a tutti, ho un problema da sottoporvi.
Devo lavorare con numeri giganteschi (interi senza segno dell'ordine di 1024
bit) in un programma in c.
Volevo sapere se ci sono librerie che fanno al caso mio per operazioni come
la somma e l'addizione...
Oppure se mi devo rimboccare le maniche per scrivere io qualcosa. In tal
caso accetto consigli su come muovermi!
ciao
Giacomo

 la somma e l'addizione...
Google -> "arbitrary precision arithmetic library".
-- 
Enrico `Trippo' Porreca

 ha scritto nel messaggio
news:zoWyc.456505$rM4.18...@news4.tin.it...

Io tempo fa ne avevo usata una che si chiama Miracl
(
http://indigo.ie/~mscott/
) molto valida. Altrimenti, realizzarla in casa
non e' molto difficile. Io ne ho realizzata una in pascal in meno di 20 ore,
implementando tutte le operazioni, compreso l'elevamento a potenza in
modulo.
Ciao
 Max

 1024
Io ho sempre usato le librerie Gnu GMP:
http://www.swox.com/gmp/
ciao,
g.

Grazie... ho già guardato tutto, ma ho deciso di reimplementare il tutto,
altrimenti mi verrebbe fuori un RSA copiato. Somma, prodotto e elevamento a
potenza già fatto, mi manca il modulo, ma come mi conviene implementarlo?

Grazie, avevo provato a ricercare la libreria sui motori di ricerca ma non
"mi venivano" le parole giuste!!!
Ho deciso di implementarmi tutto da solo, speriamo bene! mi manca il
modulo... ma sono abbastanza soddisfatto.
Pet

 ha scritto nel messaggio
news:AmgBc.354722$hc5.15...@news3.tin.it...

Sembrera' una banalita', ma facendo la divisione e' abbastanza veloce.
Ciao
 Max


Già.... ma la divisione è molto inefficiente!!!
Proverò con algoritmi tipo Montgomery...
Ho visto che una soluzione per le operazioni in modulo è quella di fare
prima le operazioni e poi il modulo, ma ho visto anche che purtroppo non è
la scelta vincente in termini di tempi di calcolo.
Io invece sto cercando proprio algoritmi efficienti: magari che scendono
sotto O(n).
Ciao
Pet

 sotto O(n).
Hai problemi di prestazioni? Quanti dati devi cifrare/decifrare?
Ciao
 Max

cioè....
diciamo che è un progetto all'univ! Nato bonariamente e poi sai come vanno
queste cose...
Adesso il prof vuole implementazioni con algoritmi differenti, ma comunque
efficienti, per paragonare i tempi!
Ho trovato tre algoritmi per quello che riguarda il modulo... vedremo!
Pet
"Max" <fdr...@SpAmMaTuAsOrElLaservidellagleba.it> ha scritto nel messaggio
news:01wCc.16310$c_1.4...@twister1.libero.it...

Newsgroup: it.comp.lang.c
Titolo: free(): con puntatori doppi e con strutture

Ciao a tutti,
__________________________
1. se faccio una free() di un puntatore doppio di tipo char**, dealloco 
tutta la memoria associata al puntatore e ai puntatori a cui esso 
eventualmente punta?
Es:
---
char **pt1;
pt1 punta a un vettore di stringhe allocate dinamicamente.
Io faccio un free(pt1). Ho deallocato sia tutte le stringhe che pt1?
__________________________
2. Se ho una struttura di questo tipo:
struct command_struct{
   char* name;
   int argcmd;
   char** argvcmd;
};
e creo un puntatore ad un tipo di struttura siffatta, e gli alloco 
memoria poi posso andare a fare una free() di tale puntatore nonostante 
"argcmd" della struttura sia un int e non un puntatore a cui ho allocato 
dinamicamente della memoria? Dopo ad aver deallocato tale memoria poi 
posso riallocare memoria per un altra struttura e associare lo stesso 
puntatore, argomento della free() precedentemente fatta, a tale memoria?
	ciao e grazie, rz.

 puntatore, argomento della free() precedentemente fatta, a tale memoria?
struct command_struct{
    char* name;
    int argcmd;
    char** argvcmd;
   };
se hai un puntatore p:
struct command_struct *p;
allora prima di tutto devi allocare spazio per lui
p = malloc(sizeof(struct command_struct));
poi puoi andare ad allocare le cose interne a lui:
(e' solo un esempio)
p->name = malloc(56);
p->argcmd=20;
p->argvcmd = calloc(20,sizeof(char *));
for (i=0; i<20; i++) p->argvcmd[i]=malloc(133);
a questo punto ci puoi lavorare sopra.
Poi, come e' logico (se hai studiato un po' i puntatori),
se fai una free(p)
liberi lo spazio occupato per p (cioe'
un puntatore a char (name)
un intero (argcmd)
un puntatore a puntatore a char (argvcmd)
ma naturalmente in quel modo perdi la possibilita'
di liberare lo spazio che hai allocato a
name e argvcmd, perche' hai perso i puntatori che
puntano a loro.
Per liberare la memoria in modo corretto devi fare il
procedimento inverso a quando hai allocato: prima una free dei
vari componenti e poi (se proprio ti serve) puoi
fare una free di p.
In realta' p occupa poco spazio, quindi una volta allocato puoi
anche tenertelo e allocare e deallocare solo i suoi record.
comunque se sei arrivato a fare una free(p); dopo
puoi ovviamente ricominciare con una
p = malloc(sizeof(struct command_struct));
e cosi' via.
ciao,
g.

 della free() precedentemente fatta, a tale memoria?
Ovviamente no.
Il puntatore per la nuova area di memoria ti viene restituito dalla
malloc(). Puoi pero` associarlo alla stessa variabile.
Saluti,
Marco
-- 
To email me, remove the no_ and _spam from my address.

 
		ciao, rz
-- 
http://mrzac.altervista.org

 
		ciao e grazie, rz
-- 
http://mrzac.altervista.org
Newsgroup: it.comp.lang.c
Titolo: domanda su DevC++

Salve a tutti,
ho installato sul mio pc (sotto win98) il compilatore DevC++ e ho una
domanda credo stupida da farvi... dopo aver compilato un programma chiedo al
compilatore di eseguirlo (col comando Execute), ma mi visualizza la finestra
con l'output del programma per circa 1/10 di secondo. Insomma non riesco a
vedere nulla! ..non c'è un modo per bloccare la finestra con l'output del
programma, non so, ad esempio, con una opzione "time" (se esiste)?
grazie tantissimo per l'aiuto.
ciao,
william

 ha scritto nel messaggio
news:xNrM7.178454$sq5.8...@news.infostrada.it...

Puoi fare in due modi: o esegui direttamente il programma da linea di
comando, oppure aggiungi la linea;
getchar();
subito prima del return del main. (getchar è contenuta in stdio.h)
Ciao,
Cecco
P.S: è una FAQ; la lista completa la puoi trovare su 
programmazione.it

 P.S: è una FAQ; la lista completa la puoi trovare su 
programmazione.it
ti ringrazio Cecco.... :-)
ciao,
william
Newsgroup: it.comp.lang.c
Titolo: passaggio di array

Ciao a tutti,
dovendo passare un array di caratteri ad una funzione, ma vorrei evitare
di passargli anche il numero di elementi dell'array. Mi chiedevo: se
dovessi scorrere tutto l'array all'interno della funzione come
identifico la fine dell'array? Nel caso di una stringa di caratteri so
che l'ultimo è \0, ma se l'ultimo non è \0 come capisco se sono giunto
al termine? (supponendo di non sapere il numero di elementi dell'array).



ciao,
terminalo tu con '\0' !
ah, un array di caratteri e' una stringa.
	Marcello
------------------------------------
take a look at 
http://www.physics.it
------------------------------------

 wrote in message
news:3B86053E...@libero.it...


Newsgroup: it.comp.lang.c
Titolo: Algoritmo di compressione Zip

Qualcuno sa dirmi se sono disponibili gli algoritmi di compressione nel
formato Zip implementati in C (eventualmente anche in C++)?
--
Francesco Trotta
http://space.tin.it/computer/ftrotta
Elimina "x_" dal mio indirizzo per mandarmi
un messaggio direttamente

...


formato Zip implementati in C (eventualmente anche in C++)?
Ce ne dovrebbero essere, anche se io so che la tecnica dei .zip e'
sotto diversi copyright.
La PKWare distribuisce la sua Data Compression Library che supporta
praticamente tutti i linguaggi, ma per usarla si paga qualcosa.
Newsgroup: it.comp.lang.c
Titolo: ...figli del pc... MORALE

Un disoccupato sta cercando lavoro come uomo delle pulizie alla
Microsoft. L'addetto del dipartimento del personale gli fa fare un test
(scopare il pavimento), poi lo intervista e alla fine gli dice:"Sei
assunto, dammi il tuo indirizzo di e-mail, così ti mando un modulo da
riempire insieme al luogo e la data in cui ti dovrai presentare per
iniziare."
L'uomo, sbigottito, risponde che non ha il computer, ne' tanto meno la
posta elettronica.
Il tipo gli risponde che se non ha un indirizzo e-mail significa che
virtualmente non esiste e quindi non gli possono dare il lavoro.
L'uomo esce, disperato, senza sapere cosa fare e con solo 10 $ in
tasca. Decide allora di andare al supermercato e comprare una cassa di
10 chili di pomodori. Vendendo porta a porta i pomodori in meno di due
ore riesce a raddoppiare il capitale, e ripetendo l'operazione altre 3
volte si ritrova con 160$.
A quel punto realizza che può sopravvivere in quella maniera, parte
ogni mattina più presto di casa e rientra sempre più tardi la sera, e
ogni giorno raddoppia o triplica il capitale.
In poco tempo si compra un carretto, poi un camion e in un batter
d'occhio si ritrova con una piccola flotta di veicoli per le consegne.
Nel giro di 5 anni il tipo e' il proprietario di una delle più grandi
catene di negozi di alimentari degli Stati Uniti.
Allora pensa  al futuro e decide di stipulare una polizza sulla vita
per lui e la sua famiglia.
Contatta un assicuratore, sceglie un piano previdenziale e quando alla
fine della discussione l'assicuratore gli chiede l'indirizzo e-mail per
mandargli la proposta, lui risponde che non ha il computer ne' l'e-mail.
"Curioso - osserva l'assicuratore-avete costruito un impero e
non avete una e-mail. Immaginate cosa sareste se aveste avuto un
computer!!!!".
L'uomo riflette e risponde:
"Sarei l'uomo delle pulizie della Microsoft".
Morale: Se hai appena letto questa storia hai più
possibilità di diventare uomo delle pulizie che miliardario
CHE NE DITE??


mmm ...
e` proprio vero ... porc*&^*£@

 CHE NE DITE??
Non prendertela, ma non mi sembra il caso postare qui queste storielle.
Magari it.comp.
fooorse.
cmq era divertente
Ciao,
Riccardo
-- 
-=Riccardo Galli=-
 _,e.
s~  ``
 ~@.   ideralis Programs
.   ol 
 `**~  
http://www.sideralis.net
Newsgroup: it.comp.lang.c
Titolo: Newbie in C

Ciao a tutti, avrei intenzione di imparare ad usare C per poi proseguire con
il C++ e java, ho trovato parecchie guide al riguardo, però non ho ben
chiaro se esiste un Tool Free che faccia da compiler, editor e debugger
tutto in uno... se esiste potete dirmi quale e se invece non esiste mi dite
un semplice editor adatto ad un totale newbie del mo calibro?
Grazie 1000 per la pazienza...


Se per `free' intendi gratuito, sul sito della Borland puoi scaricare 
una vecchia versione del Turbo C++ che fa da editor, compilatore e 
debugger (ipotizzando che tu lavori sotto DOS o Windows).
Altrimenti, se intendi `libero' non sono a conoscenza di un software che 
svolga tutte e tre le funzioni.
Il Dev-cpp comprende il compilatore GNU gcc con un editor dotato di 
evidenziazione della sintassi (sempre ipotizzando Windows).
Sui debugger non so dirti molto dato che devo ancora imparare ad usarne 
uno (un nome che mi viene in mente: GNU gdb).
-- 
Enrico `Trippo' Porreca

debugger (ipotizzando che tu lavori sotto DOS o Windows).
Borland distribuisce il pių moderno "Borland C++ Compiler 5.5", che č
poi il cuore del C++ Builder, ma č a riga di comando.
http://www.borland.com/products/downloads/download_cbuilder.html

Newsgroup: it.comp.lang.c
Titolo: Come cancellare un file?

Scusate la banalità, ma come posso cancellare un file?
ho provato con kill come in VB ma non funziona.. ;-(
E' incredibile che in un manuale non mi venga scritto qual è l'istruzione
Grazie ancora.
Giuseppe

 wrote in message
news:BbsE9.53242$744.1...@news1.tin.it...


 ha scritto nel messaggio
news:artjis$46d$1...@newsreader.mailgate.org...

------------------------------
Su sistema windows, ma sono riuscito ad ovviare il problema o almeno penso
visto che funziona.
Non mi interessava tanto che il file venisse cancellato ma che venisse
riscritto da capo ad ogni lancio del programma e mi sembrava impossibile
visto che il file veniva aperto in append. Però prima di aprirlo in append
il file viene aperto una volta in scrittura e poi subito richiuso. Non so
perchè ma funziona!
Grazie!
Giuseppe

 Grazie!
escusemeeee,
ma tu il file lo vuoi riscrivere da 0 a ogni esecuzione del programma?
BAI bai :)

 E' incredibile che in un manuale non mi venga scritto qual è l'istruzione
C'e' scritto, c'e' scritto. Dipende dal manuale che leggi...
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 C'e' scritto, c'e' scritto. Dipende dal manuale che leggi...
Infatti, il mio è stato uno spreco di soldi!
Grazie ancora!
Giuseppe
Newsgroup: it.comp.lang.c
Titolo: esercizio

Ciao a tutti sto in cominciando ad imparare il C ed ho iniziato a leggere un
libro, in cui mi viene chiesto di risolvere il seguente esercizio sulla
conversione dei numeri tra le varie basi e mi chiede:
per quale base vale la seguente relazione?
1)  41+22+17=102
2) 10^10=100
Qualcuno che mi aiuti!!!!!

 ha scritto nel messaggio
news:JLut6.61329$6W.57...@news.infostrada.it...


Newsgroup: it.comp.lang.c
Titolo: Inforamzioni Direttiva!!

Con la direttiva
#include <graphics.h>
cosa è possibile fare?

 cosa è possibile fare?
Inserire il contenuto di un file denominato graphics.h nel file
dove viene inserita la direttiva in oggetto. L'inclusione viene
effettuata a partire dalla riga dove si trova la direttiva. :-)
Se poi vuoi sapere cosa fanno le funzioni i cui prototipi si trovano
all'interno di quel file, dovrai rivolgerti al realizzatore del
compilatore/libreria che le implementa.
C:\>iao Angelo
P.S. In parole povere: l'header non e' standard e nessuno ha la sfera
     di cristallo. Dire anche dove l'hai presa potrebbe non essere una
     informazione trascurabile.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 cosa è possibile fare?
Includere l'header graphics.h? :-)
A parte gli scherzi, non è un header standard per cui può contenere 
qualsiasi dichiarazione (graphics, I suppose...).

Newsgroup: it.comp.lang.c
Titolo: gcc e Mac OS X

Ciao a tutti,
sto imparando ad usare il C (ho un MacBook Pro con OS X 10.4.7) ho 
installato il development kit. X code funziona egregiamente ma non 
riesco assolutamente a capire come creare un semplice programma C (cioč 
riga di comando, senza menu, finestre, etc) se provo a partire da zero 
e a cercare di fargli compilare un codice semplice semplice ho il 
pulsante per compilare in grigio, quindi attualmente l'unica soluzione 
č fargli caricare tutte le librerie che vuole... per fare un programma 
che scrive "ciao mondo"!. Ho pensato: "proviamo ad usare gcc da riga di 
comando", (cosa che preferirei) ma ottengo questo messaggio di errore:
dyld: Library not loaded: /usr/i686-apple-darwin8/lib/libgcc_s.1.dylib
  Referenced from: /usr/bin/gcc
  Reason: image not found
Trace/BPT trap
Che posso fare?
grazie dell'aiuto,
ciao a tutti,
David.

 David.
ciao ... sei OT ...
-- 
#include <stdio.h>
int main(void){char c[]={10,65,110,116,111,110,105,111,32,98,97,114,98,111,110,
101,32,60,104,105,110,100,101,109,105,116,64,116,105,115,99,97,108,105,110,101,
116,46,105,116,62,10,10,0};printf("%s",c);return 0;}
Newsgroup: it.comp.lang.c
Titolo: [OT]

Cerco fogli di carta cancellabile Letraset,
qualcuno sa dove li vendono??
roboberto@libero(punto)it
----------------------------------------------
 Roberto
 Dipartimento di Scienze dell'Informazione
 dell'Universita` di Ca' Foscari Venezia.
----------------------------------------------

 
..e meno male che studi SdI... se avessi studiato, chesso`, astrologia, chissa`
dove l'avresti postata, 'sta domanda...
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,
Sei passibile di querela per diffamazione aggravata ed usi un
linguaggio tale per il quale sei stato segnalato all'abuse del tuo
provider.


Newsgroup: it.comp.lang.c
Titolo: PROBLEMA BANALE....

Come faccio se per esempio ho un array di 25 numeri, a stabilire quale sia
il maggiore?
Io come soluzione ho trovato solo quella di fare 25 if con i vari && di
turno....
Per esempio:
if((a>b)&&(b>c)....)
.
.
.
.
Come si fa a farlo in una maniera + compatta?

 il maggiore?<snip>
Caso array di 25 numeri:
int m; // il tuo 'max'
int a[25]; //il tuo array
int c;// un contatore
Esempio compatto:
for(m=a[c=24];c--;a[c]>m?m=a[c]:0);
Caso di 25 variabili con nomi diversi (es: a0 .. a24):
m=a0;
if(a1>m)m=a1;
...
if(a24>m)m=a124;
Bye, Andrea
 ('< ----------------+-------------------+-----------------
 /V\   Andrea        | arimicci @@       | Inet Abuse Dept.
<(_)        Rimicci  |      aritaly. com |     AR Italy
--~~-+---------------+-------------------+-----------------
     |     Phone & Fax 
+39-019-489197
            /__ /\
_____#__ Male, 33, Italian, C programmer________](__=_`)apx

if((a>b)&&(b>c)....)
Ipotizzi il primo valore letto come il maggiore (temporaneamente) e
poi fai una scansione col for confrontando a ogni ciclo il valore
temporaneamente maggiore degli altri con quello attuale, se quello
attuale e' maggiore di quello precedente allora diventa lui il temp  +
alto (basta una variabile max che contenga l'indixce di quello + alto
inizilamnete sara' 0
Augusto Pucci
Webmaster di Prospektiva On-line
http://www.prospektiva.it
Newsgroup: it.comp.lang.c
Titolo: Aiuto per esercizio

Ciao a tutti. Devo risolvere un esercizio solo con le strutture while e/o if
e/o if/else. L'esercizio vuole che crei un programma che con un ciclo
prenda in input dieci numeri e restituisca in output il numero più grande e
il secondo più grande. Non riesco proprio a trovare l'algoritmo risolutivo.
Io ho fatto questo:
-----------------------------
#include <stdio.h>
main()
{
        int n, counter = 1, max = 0, max2 = 0, temp = 0;
        while (counter <= 10) {
                printf("Numero: ");
                scanf("%d", &n);
 
                if (n > max)
                        max = n;
                if (n > max2) {
                        max2 = n;
                        if (max2 < max) {
                                temp = max2;
                        }
                        else
                                max2 = temp;
                }
                ++counter;
        }
        printf("\nMax:   %d", max);
        printf("\nMax 2: %d\n", max2);
        return 0;
}
-----------------------------
Il problema è che va bene solo per determinati input. Infatti se ad esempio
dò come numero più grande il decimo e come secondo più grande il primo, il
programma sbaglia il secondo più grande e dà in input un numero che in
realtà non è quello che dovrebbe dare.
Qualcuno mi può dare solo un suggerimento su come procedere? Mi sono
bloccato, ma vorrei farlo io.
Grazie a tutti!

                 }
Dovrebbe andare bene in questo modo:
if (n > max) {
    int tmp = max;
    max = m;
    max2 = tmp;
}
else if (n > max2)
    max2 = m;
Ciao,
Cecco

> Dovrebbe andare bene in questo modo:
Ora va liscio come l'olio, ho capito dove sbagliavo. Grazie 1000!
Newsgroup: it.comp.lang.c
Titolo: [Socket] Inviare una struct

Come posso inviare una struct fatta da int e float ad un altro bsd
socket ?
perchè la write prende come parametro un buffer di char, esiste una
funzione per inviare
direttamente la struct?

 ha scritto nel messaggio
news:1167075266.9...@48g2000cwx.googlegroups.com...

struct X {
    int data_int;
    float data_float;
};
struct X x;
/* ... */
write (sock,&x,sizeof x); /* funzione non standard comunque ... */
Dall'altra parte devi avere però una perfetta
corrispondenza di rappresentazione dei dati e "impaccamento" della struct.
Non è ovviamente portabile.
--
Giorgio Silvestri
DSP/Embedded/Real Time OS   Software Engineer

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

Devo imparare a programmare un po' in C. E' possibile trovare una versione
trial o simili per cominciare a muovere i primi passi di Borland C? Se sě
dove? Altrimenti cosa mi consigliate (versione...)
Grazie
Ciao
Manuela

you wrote :
#Devo imparare a programmare un po' in C. E' possibile trovare una versione
#trial o simili per cominciare a muovere i primi passi di Borland C? Se sì
#dove? Altrimenti cosa mi consigliate (versione...)
Secondo me per imparare il C si puo' prescindere da un determinato
compilatore, dato che esiste lo standard del linguaggio.
Scarica il djgpp alla pagina 
www.delorie.com/djgpp
 (esiste il servizio
ZipPicker che puo' aiutarti parecchio nella scelta delle componenti
che ti servono).
Il djgpp, tra l'altro, possiede per certi aspetti una forte
compatibilita' con il Borland C, a cominciare dall'ambiente di
sviluppo dedicato RHIDE.
Andrea Laforgia        (
andrea_...@bigfoot.com
)
----------------------------------------------------
There is nothing better for understanding a kangaroo
than seeing it jump.
----------------------------------------------------
Newsgroup: it.comp.lang.c
Titolo: Alberi binari

Salve chi mi spiegherebbe gentilmente cosa sono gli alberi binari e a
cosa servono? 
Grazie :DD!!

 cosa servono?
tecnicamente un a.b. e' un grafo aciclico in cui ogni nodo ha uno ed un solo
arco entrante al piu' due archi uscenti.
Fa eccezione il nodo radice che non ha archi entranti.
in parole povere e' una struttura che si puo' rappresentare cosi': una
pallina in alto, dalla pallina escono due frecce in basso, ad ogni freccia
e' attaccata una pallina in punta. da ogni pallina puoi ricominciare con le
due frecce in giu'. In ogni pallina entra una sola freccia (tranne nella
prima in alto)
(non mi picchiate, e' per dare un'idea grafica a chi non ne ha mai visti...
:-) )
e' una struttura gerarchica che si usa per esempio per fare ricerche rapide:
immagina di mettere dei numeri nelle palline, con l'accortezza che la
pallina padre (quella da cui escono le frecce) abbia un numero piu' grande
della figlia di sinistra e piu' piccolo di quella di destra. Rendo l'idea?
per fare una ricerca su questa struttura devi solo partire dall'alto e
scendere scegliendo di volta in volta il ramo di sinistra o di destra.
Scendere fino in fondo ti costa soltanto Log (in base 2) N, dove N e' il
numero di nodi, invece di N se dovessi fare una ricerca sequenziale.
L'esempio e' scemo (manco poi tanto, la ricerca binaria e' ben utile...) ma
rende benissimo l'idea...
adesso divertiti ad implementarne uno... :-)
Pinolo

 destra. 
Un altro uso è lo heap, ovvero una struttura dati particolare che ti
permette di inserire elementi ed estrarne il massimo sempre in tempo
logaritmico.
-- 
Andrea Bergia - studente              Linux Registered User #281550

Newsgroup: it.comp.lang.c
Titolo: Scrittura strutture dati e trasferimento su macchine eterogenee

Salve,
Una curiosita', sto scrivendo un programma che crea dei file binari che
vengono trasferiti tra macchine eterogenee. Il file viene creato
utilizzando la write di strutture dati. Oltre i problemi legati al
Little endian e big endian e di size dei tipi , e' possibile che ci
siano problemi di allineamento delle strutture in fase di rilettura
delle stesse sulle altre macchine ?
In pratica, si puo' lasciare la fwrite dell'intera struttura o conviene
sostituirla con enne fwrite, una per ogni singolo campo della struttura
stessa ?
Grazie


Una struttura può essere memorizzata in modi diversi, basti solo dire 
che la dimensione in byte di un int può variare... Dunque il problema 
non è tanto leggere o scrivere da file a memoria, l'fwrite ti garantisce 
che i byte che avevi in memoria vengano scritti pari pari sul file. Il 
problema è, una volta che hai i dati in memoria, interpretarli nel modo 
corretto... Se vuoi un file binario l'unico modo portabile è che decidi 
tu come vanno codificati i tuoi dati in ogni byte, e quindi fai le 
opportune conversioni tenendo conto dell'endianess e delle dimensione 
dei tipi predefiniti.
E.

Per rispondere alla domanda originaria, pur dando per ammesso che le
due macchine usano le stesse lunghezze per i tipi fondamentali e che
abbiano lo stesso endian-ness, sarebbe piu' opportuno utilizzare n *
fwrite(), una per ogni membro della struttura.
Newsgroup: it.comp.lang.c
Titolo: Aiuto gets(punta->elem);

Scusate,mi potreste aiutare?
Tramite la funzione gets oppure  non riesco a memorizzare l'array di
char titolo[25]
puntato da puntarecord che è un puntatore a struttura.
Mentre con scanf  va tutto bene (argomenti[45]) .
Dove sbaglio?? esistono funzioni piu' adatte per questo scopo??
int scrivirecord(FILE *file,struct record *puntarecord)
  {
   if ((file = fopen("libri.dbs","a+"))== NULL)
        return 1;
      gets(puntarecord->titolo);
      scanf("%s",(puntarecord->argomenti));
      if ((fwrite(puntarecord,1,70,file))!=70)
          return 1;
   fclose(file);
   return 0;
  }

Dove sbaglio?? esistono funzioni piu' adatte per questo scopo??
Sbagli (probabilmente) nell'utilizzare gets() e scanf() nello stesso
contesto. La funzione piu' adatta per la lettura delle stringhe e'
"fgets".
--
Andrea Laforgia (ICQ 87230455)
"programmatori si nasce, non si diventa".

Newsgroup: it.comp.lang.c
Titolo: Qualcosa di simile a FD_ZERO, FD_CLR, FD_SET e FD_ISSET

Ho più o meno la stessa esigenza di una select().
Ho una serie di bit che possono essere settati oppure no a mio 
piacimento. Avevo pensato di usare un int (16 bit nel mio caso) per 
memorizzare lo stato di queste 16 entità (sono degli allarmi presenti 
oppure no).
A questo punto mi sarebbero molto comodi le macro che agiscono sui bit 
tipo FD_SET, FD_CLR, FD_ZERO e FD_ISSET. Non vorrei reinventare la 
ruota, esiste qualcosa di già fatto nelle librerie standard?

 ruota, esiste qualcosa di già fatto nelle librerie standard?
No, ma puoi scrivertele in dieci secondi ciascuna.


O anche copiarle da sys/select.h, direi che conta come "già fatto"
Newsgroup: it.comp.lang.c
Titolo: Stampare via porta usb?

Salve,
c'č un modo per pilotare una stampante attraverso porta USB, direttamente da 
shell di windows?
Grazie,
rob4you 

 rob4you

connessione tramite porta lpt1.
Puoi solo sparare l'output verso una COM o una LPT, niente USB.

> Puoi solo sparare l'output verso una COM o una LPT, niente USB.
Come mai "tecnicamente" non è possibile?

 
Perche` il "device driver" per le porte COM ed LPT e` nel SO.  Per le 
porte USB non esiste niente del genere.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

 porte USB non esiste niente del genere.
Capito, grazie. Ma se allora perché, ad esempio, in un programma "con 
interfaccia grafica" è possibile stampare tramite stampante collegata 
tramite porta usb?
rob4you 


Stiamo andando OT.  Ti conviene chiedere su un NG di windows.
Ad ogni modo penso che abbiano dei driver specifici (deve esserci 
installata una stampante).


Newsgroup: it.comp.lang.c
Titolo: Problemino con array

Ciao a tutti. Vi spiego il mio problema. Supopniamo di avere un array
semplice riempito con + elementi, tipo {10,"Nome","Cognome"}. Vorrei
riuscire a scandire questo array per capire cosa c'è dentro. Di questo array
so solo che è formato da blocchi di 2 byte, il primo intero, e poi una
dimensione variabile per le stringhe, vorrei quindi leggere i primi 2 byte
per conoscere il numero e così via...
Sapete come posso fare?
grazie a tutti.. io sto impazzendo per capire come posso fare.


Uhm... il tuo sembra un problema piuttosto di basso livello, quindi 
molto prono a trovarsi sul bordo dell'undefined behaviour per lo 
standard, ma... con un po' di ragionevoli assunzioni si puo' fare.
Per scandire 'byte a byte' ti consiglio banalmente di usare un puntatore 
a char:
char *p = (char*)indirizzo_inizio_struttura;
Diciamo che tu voglia leggere un intero, e 'passare oltre':
int n = *(int*)p;
p += sizeof(int);
Per una stringa, e' facile; ad es., questo la stampa, e passa al campo dopo:
puts(p);
p += strlen(p)+1;	// "+1" a causa del '\0' finale non contato
Spero che questo paio di esempi possano averti chiarito la strada da 
seguire (sempre se io ho capito di cosa parli, dato che all'inizio 
nomini degli array, ma quello che descrivi in seguito con gli array non 
ha nulla a che fare, se mai e' qualcosa di simile alle strutture).
-- 
Mat/tia Belletti - Graduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://mbellett.web.cs.unibo.it/
Jabber: RedGlow  - Linux registered user 299762 @ machine 213003

ti ringrazio, sei stato chiarissimo. Quello che hai descritto infatti č
l'operazione che eseguo per mettere tutti i dati di una struttura dentro un
array. Il problema l'ho risolto al contrario. Rimetto tutto dentro una
struttura e lavoro da lě.
Grazie per il tempo!
Newsgroup: it.comp.lang.c
Titolo: Principiante

Salve,
qual č il problema in questa piccola porzione di codice?
Va in loop infinito, perchč?
Ciao e grazie
#include <stdio.h>
int main()
{
 int i;
 for (i=0; i < 10; i++)
  if (i=2)
   printf("i is 2");
  else
   printf("i is not 2");
}

}
Se posso consigliarti direi di non essere avaro di { e ( per rendere i
blocchi chiari come il sole e di indentare meglio (piů spazi, mostra 
bene i livelli !).
Saluti,
-- 
         (__)	      | Nicholas Wieland	    |    -     ------------
	 (oo)	      | 
nicholas...@yahoo.it
   |    -    | There's no |
   /------\/ 	      | Debian GNU/Linux / Mac OS X |    -    | place like |
  / |    ||  	       -----------------------------     -    | *GNOME(2)* |
 *  /\---/\           ...."Have you mooed today?"....    -     ------------

  if (i=2)
	 if (i==2) 
anzi, meglio:
	 if (2==i)
cosě non rischi piů di fare lo stesso errore ;)	
-- 
A lurker.

 così non rischi più di fare lo stesso errore ;)
Grazie! sono stato proprio uno stupido, un errore da paura!
Newsgroup: it.comp.lang.c
Titolo: Sospensione del processo!!!!

Esiste una funzione funzione che permette di
sospendere il programma per un certo numero di
secondi!!!! Grazie
-- 
      \ | /
    (@ @)
-o00-(_)-00o------------------------------------------------------------------------------------------------
Benedetto Santarella
--------------------------------------------------------------------------------------------------------------
 Home Page ==> 
http://www.santarella.too.it
 
 Email :  ( Per scrivermi togli -NOSPAM- )
           Benedetto.Santarella@-NOSPAM-libero.it         
           benny_sa@-NOSPAM-freemail.it
           Santarella@-NOSPAM-vizzavi.it                 
           benedetto.santarella@-NOSPAM-genie.it


Si!!!! Prego
P.S.: la funzione in questione e` sleep()
P.P.S.: accorcia la firma.
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

 secondi!!!! Grazie
Se non sbaglio e' dipendente alla piattaforma e qui si parla di ANSI C.
Apri un thread su un newsgroup dedicato al tuo sistema operativo.
Saluti,
-- 
         (__)	      | Nicholas Wieland	    |    -     ------------
	 (oo)	      | 
nicholas...@yahoo.it
   |    -    | There's no |
   /------\/ 	      | Debian GNU/Linux / Mac OS X |    -    | place like |
  / |    ||  	       -----------------------------     -    | *GNOME(2)* |
 *  /\---/\           ...."Have you mooed today?"....    -     ------------

 secondi!!!! Grazie
<ot>
per sospensioni dei processi, chiedere al Cavaliere
</ot>
esistono varie opzioni: sleep() su *nix o comunque compilatori 
unix-like, altre funzioni proprietarie di ogni sistema operativo
in maniera portabile, puoi usare un ciclo, la macro CLOCKS_PER_SEC, la 
f. clock(). Pero' questo metodo usa il 100% della cpu 
la cosa migliore e' crearsi una f. my_delay, che si compila diversamente 
sui diversi sistemi. Se poi il tuo e' un problema specifico (Win, Linux, 
altro) chiedi sul NG adatto
-- 
#include <stdio.h>/* (C) BW2K+2 This code is released under GPL 2+ */
int main(void){char c[]={98,108,97,107,119,111,108,102,64,116,105,
115,99,97,108,105,46,105,116,32,119,101,98,46,116,105,115,99,97,108,
105,46,105,116,47,98,108,97,107,119,111,108,102,0};printf("%s\n",c);}

 secondi!!!! Grazie
#include <time.h>
void suspend(int nsec) {
    time_t t1, t2;
    for(t1=time(NULL),t2=t1; difftime(t2, t1) < nsec; t2=time(NULL));
}
-- 
In silenzio anche un idiota sembra intelligente. Ma non c'č problema,
l'idiota vuol sempre dire la sua.

 altro) chiedi sul NG adatto
la vera ed unica soluzione....
Newsgroup: it.comp.lang.c
Titolo: Lettura indirizzo parallela

Salve,
ho trovato questo listato per individuare l'indirizzo della porta
parallela.. perň compilandolo con il c++ microsoft mi da errore...
void Leggi_parallela(void)
{
int addr;
_asm
    {
    push ax
    push bx
    push es
    sub ax,ax
    mov es,ax
    mov bx,408h
    mov ax,word ptr es:[bx] // Errore 1
    mov ax,bx
    mov addr,ax // Errore 2
    pop es
    pop bx
    pop ax
    }
printf("Ret: %d",addr);
}
gli errori sono:
Err. 1: illegal reference to 16-bit data in 'second operand'
Err. 2: operand size conflict
Mi sapreste dire il perchč??
grazie
xoooox
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/



 Mi sapreste dire il perchč??
Ci arrivi a mettere il cursore sulla linea che indica l'errore
e premere F1? L'help on line lo spiega una meraviglia il perche'
dei tuoi problemi.
Non ti dice che del codice per un processore a 16 bit puo' non
funzionare su un processore a 32 (specie se si tratta di assembler)
ma con un po' di sforzo ci arrivi pure tu a capirlo.
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 C:\>iao Angelo
Mica mi sapresti dire come modificare il codice?


 grazie
Ti faccio presente che questo e' un NG dedicato al linguaggio "C"
_standard_. Pertanto quando non leggerai niente perche' il tuo S.O.
ti impedisce l'accesso diretto all'HW, saresti pregato di rivolgerti
ad un NG piu' appropriato.


parallela.. però compilandolo con il c++ microsoft mi da errore...
[cut]
Prova cosi':
void Leggi_parallela(void) {
 short addr;
_asm {
  push es
  mov ax,00040h
  mov es,ax
  mov ax,word ptr es:[00008h]
  mov word ptr addr,ax
  pop es
 }
 printf("Ret: %d",addr);
}
---
acc(at)
libero.it