mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: HELP URGENTE. Documentazione cercasi !

Avrei URGENTISSIMO bisogno di reperire documentazione sulle modalità di
implementazione di una interfaccia grafica su macchina 8x86 con il
linguaggio C.
( Per chi ha usato il Turbo Pascal una sorta di "initgraph()" e altre
funzioni per tracciare linee e accendere pixel)
Chiunque abbia informazioni  è pregato di rispondermi all' e-mail.
Grazie mille
--
M.C.

funzioni per tracciare linee e accendere pixel)
Non e' possibile compiere operazioni del genere in modo standard.
Devi specificare quale sistema operativo (suppongo il DOS, visto che
parli di TP e initgaph() ) e quale compilatore utilizzi.


prova qui, non e' il massimo, ma non ho sottomano un sito migliore
http://gameprogrammer.com/1-vbe.html
--== Sent via Deja.com 
http://www.deja.com/
 ==--
---Share what you know. Learn what you don't.---

Newsgroup: it.comp.lang.c
Titolo: SOS: import dll

Hello to all, we are Nadia and Marianna.
One of ours many problems is to import a DLL in java.
In particular we would want to import main of a DLL to java.
Someone of you could help us?
Thanks!
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Thanks!
I'm not sure:
System.LoadLibrary(...)
However take a look to java documentation
Newsgroup: it.comp.lang.c
Titolo: Compilatore 8086

Qualcuno di voi ha scritto in c o c++ un compilatore per 8086?? Mi serve per
un esame universitario e vorrei un riferimento sono a etą del compilatore ma
un aiuto non fa mai male!!!

 un aiuto non fa mai male!!!
Anni fa io avevo lavorato con il GCC (GNU C Compiler),
dotato di tutti i sorgenti, ma non molto documentato.
La cosa interessante e' che era facilmente modificabile per
qualunque cpu target, comunque la versione per 8086
sicuramente era gia' pronta.
Non so adesso come sia la situazione,  forse puoi trovare
anche di meglio, pero' allora era un compilatore free che
batteva tanti compilatori commerciali.

Newsgroup: it.comp.lang.c
Titolo: HELP ME PLEASE !!!!!!!!!!!!!!!!!!

Ho bisogno di un aiuto.
Quando, mentre scrivo su un file, devo inserire un "a capo", faccio "\n",
quando devo inserire un "tab" faccio "\t".
Se voglio cancellare un carattere come faccio "backspace"??
Grazie.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Grazie.
Per me devi copiare il file su un'altro file saltando il carattere che vuoi
eliminare.
Posso pero' anche aver detto una stupidata :-)
Ciao
Giuseppe

>> Se voglio cancellare un carattere come faccio "backspace"??
\b penso

 \b penso
Quello puo' funzionare sullo schermo, ma
se il carattere che vuole cancellare si trova in un file,
l'unica possibilita' e' quella di aprire il file,
copiarlo in un file temporaneo escludendo il carattere,
e rinominare il file temporaneo.
Naturalmente se uno deve cancellare molti caratteri da un
file e' meglio se lo tiene in memoria o se pensa a
qualcosa di piu' furbo.
ciao,
g.
Newsgroup: it.comp.lang.c
Titolo: forse faccio prima a leggere un pò di codice...

 
ciao,
sono un (iniziale) autodidatta in c, so usare decentemente i costrutti, le
allocazioni, i puntatori e la parte della libreria standard di uso più
frequente, quindi bene o male se devo fare qualcosa trovo il modo di
farlo.... il problema è che credo di avere qualche macroscopico problema ad
organizzare il codice nei file, in particolare l'uso degli header file mi è
un pò oscuro (nel senso, li faccio e li uso, ma non so se il mio modo di
farli, di includerli ecc. è "buono" o "cattivo").
siccome recentemente ho speso troppo in libri di informatica e comunque non
ho il tempo di leggerli per trovare le informazioni che ancora non so...
vorrei trovare un'altra strada, sto scaricando qualche guida di stile in c
ma mi sembrano già su argomenti più meramente formali (...beh... visto che
sono di stile..) ed avanzati....
secondo voi se mi scaricassi il codice di un progettino opensource di
piccole dimensioni e mi mettessi a cercare nel codice stesso.... sarebbe un
modo efficace per avere qualche "ispirazione"?
se sì, quale mi consigliereste?
grazie in anticipo :-) e ciao
devnull
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/


Il miglior modo per imparare un linguaggio è usarlo. Per lo stile, bene o male
si usa tutti lo stesso... Quindi leggere il codice degli altri può essere un
buon modo per imparare velocemente le convenzioni stilistiche, e non ci sono
particolari programmi che potrei consigliarti.
Ti consiglio qualche demone noto, comunque, che non sia però troppo grosso. Ad
esempio un bellissimo qmail lissio lissio...
Io personalmente, allo stato attuale mi sto leggendo il codice di syslog-ng,
anche per imparare qualcosa sulle GLib, e lo sto trovando molto istruttivo...


Per quanto mi riguarda, uno dei pacchetti open source in cui ci ho
messo il naso e che mi è sembrato particolarmente istruttivo è stato
lo Gnu Fileutils, oggi inglobato nel più completo Gnu Coreutils (nel
quale convergono anche le Shellutils e le Textutils).
Puoi trovare le Gnu Coreutils al seguente indirizzo:
http://www.gnu.org/software/coreutils/
Newsgroup: it.comp.lang.c
Titolo: Ancora sui grafi

Per trovare il percorso minimo tra due nodi in un grafo non pesato tutti i
libri che ho consultato dicono che si applica banalmente una ricerca in
ampiezza (BFS),in quanto il primo nodo incontrato è sicuramente il più
vicino.
Ciò che non capisco è come si fa a mantenere traccia del percorso per poi
stamparlo.
Utilizzando la versione non ricorsiva della visita in ampiezza si usa una
coda :quindi i nodi vanno aggiunti dall' alto e vengono presi dal basso .
Ma in questo modo si perde la relazione sequenziale del percorso : infatti
dopo avere visitato il nodo di partenza e avere aggiunto alla coda i nodi ad
esso legati (che si trovano poi nella lista di adiacenza del nodo di
partenza ) , l' agoritmo prevede  che si prelevi il primo nodo inserito .Per
esempio :
                                            A
                                          /  |  \
                                        B  C  D
                                      /  \        |
                                    E  F       G
La coda sarà
A
DCB
EFDC
GEFD
Come posso fare per esempio a trovare il  percorso minimo da A a F  (ABF) .
Infine se il grafo contiene cicli (per esempio esiste un percorso che da B
riporta in B) come posso fare a trovare l' intero percorso.
Tenete presente che il mio cervello sta fondendo ....quindi urge aiuto
massiccio !
Grazie a tutti e scusate la lunghezza del messaggio

Teni una struttura di appoggio chiamata P che sia un'array di tanti
elementi quanti sono i tuoi vertici e in cui registri il predecessore
di quel vertice nel cammino.
Questa soluzione e' riportata praticamente in ogni libro di algoritmi
e in ogni algoritmo che tenga traccia dei cammini in un gravo sui
gravi (e quasi sempre con il nome "P")... strano tu non ne abbia mai
sentito parlare.
Mox

 ha scritto nel messaggio
news:XzONO3fSD0fAHs...@4ax.com...


inseriti per livello.
Nella visita in ampiezza non si usa P... si una PI_GREGO per indicarei
predecessori.
Nella visita ricorsiva non vai in parallelo, ma sempre in modo
sequenziale: usi la ricorsione perche' e' equivalente ad aggiungere i
nodi che trovi in uno stack anziche' in una coda come dalla visita in
ampiezza.
Secondo me non hai afferrato una cosa degli algoritmi sui grafi: man
mano che procedi con l'algoritmo devi annotare i risultati (parziali,
come nel caso dei cammini minimi nell'algoritmo di Dijkstra, o finali,
come i tempi di scoperta nella visita in profondita') in strutture di
appoggio.
Non puoi usare solo le code (o gli stack) che usi durante la visita
come riferimento, perche' perderesti il loro valore a fine algoritmo.
Nel caso della visita in profondita' ne usi addirittura 4 di strutture
di appoggio:
- d[]: per indicare il tempo di scoperta
- f[]: per indicare il tempo di "chiusura"
- PI[]: per indicare il predecessore del nodo nell'albero DFS
- color[]: per indicare lo stato del nodo (bianco, grigio o nero)
Mox :)

 ha scritto nel messaggio
news:nDKOO9AAu7zyWE...@4ax.com...


 ha scritto nel messaggio
news:9mm6do$sg4$1...@nreadb.inwind.it...

Newsgroup: it.comp.lang.c
Titolo: Che differenza tra C e C++?

Mi potreste spiegare la differenza tra C e C++, in termini di utilizzo, di
difficoltà, di utilità.ecc..
Ogni informazione è bene acetta.
Grazie a tutti.

 bene acetta.
  La questione e` stata--seppur logorroicamente, dato l'argomento--molto
ben discussa su news:comp.lang.c negli scorsi giorni. Ti consiglio una
ricerca su Deja News (
http://www.dejanews.com
) sui messaggi con soggetto
"Difference between C and C++".
	Alla prossima,
		Marco

 difficoltà, di utilità.ecc..
Leggi le faq su 
www.programmazione.it
Paolo
-- 
------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
 
http://www.cli.di.unipi.it/~marotta
------------------------------------------------

Newsgroup: it.comp.lang.c
Titolo: Funzione per trasformare caratteri da maiuscolo a minuscolo e  viceversa

Salve a tutti, ho un problema che non riesco a risolvere: devo creare
una funzione di libreria per formattare una stringa in ingresso in
base ad un parametro fornito dall'utente, per poterla poi stampare in
una pagina web.
In pratica, qualcosa tipo formattaStringa(stringa, tipo), dove stringa
è la stringa passata e in cui verrà salvato il risultato
dell'elaborazione e tipo può essere 0,1,2; se 0, trasformo tutti i
caratteri in maiuscolo, se 1 tutta in minuscolo, se 2 il primo
carattere di ogni parola maiuscolo e gli altri minuscoli.
Ovviamente, senza usare tolower e toupper e, se possibile, gestendo
anche i caratteri accentati.
Con i caratteri "normali" (quelli corrispondenti alla tabella ascii
normale, ovvero i 26 caratteri dell'alfabeto, maiuscolo e minuscolo,
numeri e segni di punteggiatura)  tutto a posto, ma con quelli
accentati iniziano i problemi; la stringa di uscita presenta caratteri
strani.
Visto che sono rappresentati da due byte ho pensato di controllare il
primo byte: se il corrispondente decimale del carattere, ottenuto come
(int)stringa[i] è pari a -61, posso avere un carattere accentato e
guardo quindi il secondo carattere.
In questo modo ad esempio, il carattere è corrisponde alla sequenza
-61 -88 e devo trasformarlo in -61 -120 cioè in È.
il frammento di codice, se può aiutare, è all'interno di ciclo per i
che va da 0 a strlen(stringa)-1 ed è:
letter=(int)stringa[i];
if(letter==-61)
{
    tmp[j]==-61;
    j++;
    i++;
    letter=(int)stringa[i];
    if(letter=='88)    tmp[j]=-120;
}
dove tmp è una stringa in cui salvo il risultato intermedio
dell'elaborazione.

 che va da 0 a strlen(stringa)-1 ed è:
1) spiega perche' usi int invece di char o (meglio) unsigned char per
trattare caratteri?
2) tutti i caratteri della tabella ascii sopra il 127 non sono
standard, dipendono dal charset
Ciao Jack

 Ciao Jack
ciao e grazie


Leggi questo ottimo articolo e poi ne riparliamo
http://www.joelonsoftware.com/articles/Unicode.html
purtroppo appena si esce dal dorato mondo dell'ascii cominciano i
casini...
Non ho mai gestito la faccenda in C ma decisamente non è così semplice.

 [...]
Ciao  Manlio
Newsgroup: it.comp.lang.c
Titolo: Size di files >4GB

Buongiorno a tutti,
sto lavorando su win32 con un compilatore a 32 bit, e tra le varie
cose dovrei fare la scansione di varie directory e prendere le info di
ogni file ivi contenuto, solo che c'e` il piccolo particolare che
l'info del "size" usando le librerie dedicate del compilatore, e` un
long (dword), quindi per tutti i file >4GB il valore ritornato non ha
senso (sarebbe >2GB, ma gestendolo come unsigned, il size e` corretto
sino a 4GB).
 
E' parecchio tempo che non metto mano alle API di win32, qualcuno per
caso puo` gentilmente dirmi quali sono le funzioni allo scopo (magari
anche in quale DDL sono) nelle API di windows?
 
Tenete conto che il compilatore non e` Microsoft, quindi eventuali API
del compilatore Microsoft e non della win32, non le posso usare.
 
Sto pensando di arrivare, al limite, di fare una "mini" dll con un
compilatore Microsoft, con le funzioni ad-hoc che mi servono, e poi
usare questa, ma preferirei gestire tutto direttamente, per evitare di
avere 2 compilatori nello stesso progetto.
 
Ogni suggerimento e` bene accetto! :)
TIA, Andrea
-- 
andrea - ri mi cci, name

 anche in quale DDL sono) nelle API di windows?
 
Puoi usare GetFileSizeEx() che dovrebbe stare in kernel32.dll
 
ciao
Giacomo

>Puoi usare GetFileSizeEx() che dovrebbe stare in kernel32.dll
Grazie!


Newsgroup: it.comp.lang.c
Titolo: Tempo in usec su macchine win32?

Sto portando una applicazioncina per misure di round-trip su reti IP dal
mondo unix al mondo win32.
La gettimeofday nel mondo unix restituisce precisioni del microsecondo non
esiste niente nel modo microsoft che arrivi al microsecondo?
Grazie, Fabio Zed Zamparelli

esiste niente nel modo microsoft che arrivi al microsecondo?
Sei offtopic... comunque su win32 esiste la possibilita' di
interrogare il contatore interno di cicli macchina disponibile
su Pentium o superiori... le chiamate sono QueryPerformanceCounter
e QueryPerformanceFrequency. Sulle CPU che stanno uscendo si
arriva ai nanosecondi (!)
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

 arriva ai nanosecondi (!)
Vado subito a documentarmi al riguardo.
Grazie mille e scusate l'OT.
Fabio Zed

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

nessuna anima caritatevole saprebbe indicarmi come chiamare funzioni
fortran da un programma in c? non sto trovando niente su internet :(
grazie
roberto



Non lo so fare, ma la ricerca che ti interessa su google e'
embedding c fortran
Così dovresti trovare informazioni.
Ciao,
Riccardo
-- 
-=Riccardo Galli=-
 _,e.
s~  ``
 ~@.   ideralis Programs
.   ol 
 `**~  
http://www.sideralis.net

 fortran da un programma in c? non sto trovando niente su internet :(
Il problema e' che non e' previsto da alcun standard (anche se dovrebbe in
futuro, probabilmente
con il proposed std fortran 2004).
Devi vedere la documentazione per la tua piattaforma.
In SUN e' sicuramente possibile, in VAX pure ed anche il MS, ma ripeto,
leggi la doc del tuo compilatore/linker.
- gio

 
vero, grazie :) speriamo di scoprire qualcosa!
ro
Newsgroup: it.comp.lang.c
Titolo: Re: Accettare connessioni su piu- porte

 Marco
Non capisco cosa c'entri con il C.
In ogni caso che io sappia non esiste alcuna relazione tra sockets e
threads (eccetto il fatto che non fanno parte dello standard C).

   
E' possibile, See select ;-)
B.

 Oppure sfruttereste qualcosa tipo un interrupt?
Direi che esistono vari modi per fare quello che vuoi, con approcci
diversi.
puoi fare una select sui file descriptor
puoi lavorare in modo bloccante o non (ad esempio faccio un loop in
cui controllo se su una porta ho dei dati; se non ne ho vado
sull'altra)
usare un interrupt mi sembra eccessivo, a meno che tu non richieda
precisioni particolari per cose che non mi sembra tu abbia indicate.
se vuoi fare un thread non vedo controindicazioni, ma se non ti
serve ...
ho visto anche soluzioni un po' esotercihe, con degli alarm() che
chiamano funzioni per gestire i buffer ricevuti.
Io ti consiglio di usare la soluzione che ti piace di piu', poi magari
ne provi altre e fai dei paragoni, o ti aggiusti lungo la strada.
davide

Newsgroup: it.comp.lang.c
Titolo: dove ritrovare i vecchi post?

come subject grazie by Lujx

come subject grazie by Lujx
http://groups.google.com
--
Rhymes - 
rhy...@myself.com
http://www.foxhound-games.it
"Sapete cosa fa un InputStream quando
gli si racconta una barzelletta? Reader..."

Newsgroup: it.comp.lang.c
Titolo: domanda puntatori

if (!filter) {
        Error ("GetReal", NO_FILTER_VECTOR, ABORT);
    }
Cosa significa if (!filter) se filter è un puntatore ad un Float? Che non
esiste?
grazie
michele



float *filter=NULL;
if(!float) printf("Ciao mondo!\n");
Ciao,
Riccardo

 ha scritto nel messaggio
news:c37ddn$g48$1...@newsread.albacom.net...


Michele wrote:

In pratica, il punto escalmativo dice: "falso".
Marcello

 evitare scritture contorte quando si puň!
...
E anche piu' standard.
Perche' lo standard non dice da nessuna parte che NULL deve essere 
implementato con   0 ma solo che  e' una macro che viene espansa ad un 
puntatore nullo implementation-defined  (anche se la probabilita' che 
sia 0 e' abbastanza alta).  Se vogliamo, questo e' un corollario del 
fatto che lo standard non richiede che il valore di un puntatore sia un 
numero intero.
Giorgio

numero intero.
   Non e` proprio cosi`. In effetti lo standard precisa che NULL e`
una costante definita dall'implementazione e puo` quindi non essere
zero (non avere una rappresentazione composta di bit tutti posti a
zero), pero` precisa anche che una costante intera di valore 0, se
convertita a puntatore, deve essere convertita al puntatore nullo.
   Quindi (pointer != NULL) oppure (pointer != 0), e quindi anche
(!pointer), sono equivalenti anche su sistemi dove NULL e` un
puntatore che non ha tutti i bit pari a zero.
   Se interessa posto i riferimenti, ora no... E` anche un po' tardi.
:)
-- 
S.L.
Newsgroup: it.comp.lang.c
Titolo: Problema Linker ?

Ho cercato di usare la funzione
getline()
ma se cerco di compilare (con DEV C/C++)
ottengo:
[Linker error] undefined reference to 'getline'
[Build error][SistemaT9.dll] Error 1
Magari è una cavolata, visto che è troppo che non programmo in C. :-(
Il pezzo di codice incriminato:
[CODE]
char *p;
FILE *diz;
int bytes_read = 0;
int nbytes = 100;
diz = fopen("dizionario.txt","r");
p = (char *) malloc (nbytes+ 1);
bytes_read = getline (&p, 100, diz);
printf("Byte Letti: %s", bytes_read);
printf("Letto: %s ", p);
[/CODE]
Ringrazio ancora per la pazienza :)
Simone
P.s. ho incluso la stdio.h

 P.s. ho incluso la stdio.h
Visto che getline() e' "roba" C++, forse avresti fatto meglio ad
includere iostream.
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 C:\>iao Angelo
Eppure mi son mosso in buona fede... per la verità seguendo questo 
link:
http://crasseux.com/books/ctutorial/getline.html
  (the gnu c 
programming tutorial)
Ciao
Simone 

 estensione GNU e quindi non inclusa nelle librerie standard.
CUT
Ops... e qui cade il mio orrendo malinteso... averla considerata 
inclusa nella libreria standard.
Scusate e grazie per la disponibilità! :-)
Ciaooo
Simone

Newsgroup: it.comp.lang.c
Titolo: suoni e vc++

Domanda: come si fa a generare un suono, di una certa frequenza durata e
timbro, con visual c++?
-------------------------------------------------------
Messaggio inviato da 
http://www.sandlab.org/newsgroup/
Accesso gratuito via web ai Newsgroup

timbro, con visual c++?
it.comp.programmare.win32
-- 
Andrea Laforgia - walkietalkie(at)
libero.it
Newsgroup: it.comp.lang.c
Titolo: Due domande veramente stupide

Ciao a tutti, mi chiamo Marco, ho 19 anni e a tempo perso mi diletto col
C... Scrivo qui xche' ho due piccoli problemucci e non saprei a chi altri
rivolgermi...
Allora, sto cercando di farmi un programmino che permette di giocare a Tris,
sia giocatore contro cpu che giocatore contro giocatore. Io ho dichiarato la
mia bella matrice e creato due funzioni x l'inserimento delle coordinate
nello schemino di questo tipo
void mosse_p1(int x, int y)
      {
              if ((x==1)&&(y==1))
                  {
                           v[0][0]='X';
                           griglia();     /* E' lo schema gia' fatto in cui
andra' inserito il valore */
                  }
                                   .
                                   .
                                   .
                                   .
              else printf("coordinate non valide!");
       }
Ovviamente queste sono le mosse x il giocatore che usa la 'X', quelle
dell'altro giocatore sono identiche. Adesso vi chiedo: come potrei fare x
evitare che i due giocatori facciano la stessa mossa? Non mi viene in mente
niente... =/
L'altra domanda e' + una curiosia', visto che l'ho appena provata e sembra
funzionare: e' corretto usare la funzione  system("clear")  per pulire lo
schermo? Su Linux va, ma vorrei sapere se esiste un altro modo, magari +
pulito...
Vi ringrazio anticipatamente e scusate per la stupiditą delle domande...
                                                           Marco
PS: Non ho postato l'intero codice xche' sono quasi 280 righe, ma se serve
ve lo posto..
---------
Marcuzzo
ICQ #31196433





Ciao Marco
, sono 
Fabrizio.


 


Credo di esserti utile per la soluzione dei 
tuoi problemi.


 


Allora per quanto riguarda la pulizia dello schermo 
usa la funzione clrscr() includendo la libreria conio.h.


 


Per il primo problema, la risposta è semplicissima, 
se si attiene prettamente alle poche righe che hai visualizzato. Quindi devi far 
controllare,in modo ripetitivo, nell'algoritmo che permette di eseguire le 
mosse, se v[x][x] è gia occupato.


 


esempio:. x=1;


        
        y=1;


                if(v[x][y]==NULL)inserisci();


                
else printf("Posizione occupata");


 


 



 Vi ringrazio anticipatamente e scusate per la stupidità delle domande...

Newsgroup: it.comp.lang.c
Titolo: Domanda sui processi

Dovrei realizzare in POSIX C dei processi che funzionano in background 
cosě come accade con il comando & in shell POSIX.
Ho usato un fork+exec non mettendo il wait sul processo padre. 
Concettualmente la cosa sembra esatta, ma quando avvio il programma il 
prompt scompare fino al termine dell'esecuzione del processo figlio. 
Come risolvo?

 Ho usato un fork+exec non mettendo il wait sul processo padre.
Ciao,
 non basta mica :-)
Non so dirti tutti i dettagli, ma credo che le sezioni "Processes" e "Job 
control" dell'info della glibc facciano al caso tuo!
 Ciao
 Federico
Newsgroup: it.comp.lang.c
Titolo: [REQ][HELP] Aiuto ai guru del C!!!

Ho un problemone!
Ho definito la seguente funzione:
void init (unsinged short i, ...);
che accetta un numero variabile di parametri. E fin qui tutto bene.
Il problema ora è che ho bisogno che un'altra funzione chiami questa,
nel modo seguente:
void pre-init (...)
{
  // Da qualche parte viene chiamata la funz. init!
}
Come faccia a passare a passare i parametri da pre-init a init senza
conoscerne nè il numero, nè il tipo? Voglio semplicemente passarli,
senza nessuna pretesa: ci pensa init a elaborarli.
 
Grazie!!
-- 
+ ICEMAZE +
ice...@planet.it
"Digito ergo sum"

 wrote:
[ snip ]
I>Come faccia a passare a passare i parametri da pre-init a init senza
I>conoscerne nè il numero, nè il tipo? Voglio semplicemente passarli,
I>senza nessuna pretesa: ci pensa init a elaborarli.
Forse qualcosa del genere (solo abbozzato):
------------------------------------------------------------------
#include <stdio.h>
#include <stdarg.h>
void init(int i, va_list ap) {
        fputs("Init: ", stdout);
        for(; i; i--)
                putchar(va_arg(ap, char));
        fputs(" -> ", stdout);
}
void preinit(int i, ...) {
        va_list ap;
        fputs("Preinit -> ", stdout);
        va_start(ap, i);
        init(i, ap);
        va_end(ap);
        puts("Done");
}
int main()
{
        preinit(3, 'a', 'b', 'c');
        preinit(5, 'a', 'b', 'c', 'd', 'e');
        return 0;
}
------------------------------------------------------------------
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

Credo che ci sia qualche altro modo per scrivere il tuo programma, senza per
forza usare questa forma.
In C non mi risulta sia permesso non specificare almeno 1 parametro, per cui
la tua preinit non va.
Come soluzione "veloce" potresti passare alla preinit un parametro int prima
degli altri, poi questo parametro non lo usi, e gli altri li passi all'init.
Ma sei sicuro di non poter definire la preinit proprio allo stesso modo
dell'init? Dopotutto a qualunque funzione passi quei parametri, almeno il
primo dovrai definirlo...
--
Alessandro Monti

 wrote:
AF>[ snip ]
AF>        for(; i; i--)
AF>                putchar(va_arg(ap, char));
In effetti, qui andrebbe 
                 putchar(va_arg(ap, int));
perche' il char e' promosso a int (C-FAQ 15.10).


 senza nessuna pretesa: ci pensa init a elaborarli.
Ottima domanda! Per quanto ne so io non si può fare. Spero di essere
smentito...
EMG

 Forse qualcosa del genere (solo abbozzato):
Bravissimo! Metto di corsa il tuo "snippet" nella la mia collezione.
EMG

you wrote :
#Come faccia a passare a passare i parametri da pre-init a init senza
#conoscerne nè il numero, nè il tipo? Voglio semplicemente passarli,
#senza nessuna pretesa: ci pensa init a elaborarli.
La libreria "stdarg.h" possiede le dichiarazioni delle funzioni
cosiddette "variadiche" che fanno al caso tuo.
--------------------------------------------------------
* Andrea Laforgia        (
andrea_...@bigfoot.com
) *
--------------------------------------------------------
Newsgroup: it.comp.lang.c
Titolo: quale compilatore?

ciao a tutti,
Ho voglia di mettermi a imparare il C (conosco già qualche altro linguaggio
di programmazione) e avrei bisogno qualche informazione. Io ho un Pc con
windows 95 quale compilatore mi consigliate ?
grazie e ciao
Alberto Caslini

 ha scritto nel messaggio
news:apha7l$d6m$1...@lacerta.tiscalinet.it...

ti consiglio LCC ... fai una ricerca con google che lo trovi al volo e lo
puoi scaricare ... sono 3,3mb!
byez

 ha scritto nel messaggio
news:apha7l$d6m$1...@lacerta.tiscalinet.it...


 ha scritto nel messaggio
news:apha7l$d6m$1...@lacerta.tiscalinet.it...

www.delorie.com/djgpp

 pianger d'amore:

Ce ne sono tanti distribuiti come "free", dipende dalle tue esigenze.
Se sai destreggiarti con la riga di comando ti consiglio gcc nelle sue varie
versioni: cygwin, mingw o djgpp, il primo e' il piu' completo, il secondo e'
il piu' "leggero", e il terzo compila solo per DOS (niente finestre,
bottoni, tricchetracche e putipu'). Potresti usare Dev-C++, se vuoi
un'interfaccia grafica, con un editor integrato, ma tieni conto che non si
tratta di un'integrazione "stretta"...
Se vuoi un'integrazione abbastanza "stretta" con i componenti Windows,
sempre a riga di comando, c'e' il Borland C++ 5.5, gratis dal sito Borland.
In realta' e' un compilatore C++, ma compila anche il C.
Se ti serve solo per imparare, e vuoi un ambiente completo (quindi con un
editor e tutto il resto), puoi usare LCC, che a differenza degli altri non
supporta il C++, quindi se poi volessi imparare anche quello dovresti usare
un compilatore diverso.
Ultima possibilita': sempre dalla Borland puoi scaricare Turbo C e Turbo
C++, si tratta di prodotti vecchi ormai, ma di tipo commerciale, e quindi
molto completi, entrambi per DOS (io ho imparato il C con questi). Se vuoi
SOLO imparare, secondo me e' la scelta migliore, si tratta di ambienti
facili da utilizzare, anche se in modo testo. Quando poi avrai imparato
potrai sempre cambiare ambiente...
Newsgroup: it.comp.lang.c
Titolo: .. cercasi

c'č qualke anima pia che mi maderebbe in e-mail [ 
pall...@infinito.it
 ] la
versione Bornland Turbo C++ .. quella per DOS..
very thx
P84@

versione Bornland Turbo C++ .. quella per DOS..
nella sezione museum della borland dovrebbe esserci
----
Lawrence "Rhymes" Oluyede
rhy...@myself.com


Perché?...Non puoi scaricartela da:
http://www.borland.com/borlandcpp/turbosuite/


a proposito.... che fine ha fatto il link alla sezione museum?? tempo
fa avevo bisogno di cercare qualche libreria per il TC3.0 ma sul sito
Borland non sono piu' riuscito a ritrovare il link.... 
Andrea

Borland non sono piu' riuscito a ritrovare il link.... 
te pensa che io nemmeno sapevo che il link non ci fosse + ^_^


Borland non sono piu' riuscito a ritrovare il link.... 
Il TC 3.0 si scarica da:
http://www.borland.com/borlandcpp/turbosuite/
-- 
The Follet

 ha scritto nel messaggio
news:3c06b0b4...@news.tin.it...

ehm ehm.....non si scarica !

 ehm ehm.....non si scarica !
Hai ragione, scusa, ho dato un'occhiata veloce.
Comunque il Museum e' accessibile dalla Community,
per la quale bisogna essere registrati.
Li' ci dovrebbe essere qualcosa.
-- 
Posted from  [80.105.34.80] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c
Titolo: Libreria thread e socket

Quale librerie devo usere per utilizzare thread e socket in C sotto Linux?
Grazie

 wrote in message
news:TesE9.20943$2B1.5...@twister2.libero.it...



sei OT ma ti vogliamo bene lo stesso:
man 2 socket
man pthread_create
buon lavoro,
Nids
Newsgroup: it.comp.lang.c
Titolo: Problema su SCANF

Ho un problema usando la scanf.. anzi 2 problemi!
Il primo č:
 non riesco a fargli leggere un carattere alla volta fino a quando non
inserisco il carattere '$'
Il secondo č:
se leggo u na stringa contenente spazi mi assegna alla variabile della
stringa solo il testo fino al primo spazio.mentre lo vorrei tutto.. ad
esempio seu inserisco: "PROGRAMMA IN C" e poi stampo la stringa m
ivisualizza solo "PROGRAMMA"
ahh devo rispolvere i problemi usando la scanf!!!

 stringa solo il testo fino al primo spazio.mentre lo vorrei tutto.. 
Questo perche` il qualificatore %s indica "a sequence of non-white-space
characters". Per leggere  una riga di  solito si preferisce  la funzione
fgets  perche`  permette  un  controllo sulla  lunghezza  della  stringa
inserita (previene  gli overflow). Visto  che devi  per forza  usare una
scanf:
scanf("%[^\n]"), buffer);
Lo specificatore  [ indica  un set  di caratteri  (terminati con  ]) che
devono  essere converiti. Il  carattere  ^ rappresenta  una negazione  e
tutti i caratteri  che seguono devono essere  esclusi. La conversione si
ferma al primo carattere non incluso (o incluso se si usa ^) nel set.
Ad esempio:
"%[^$]"
indica una qualunque carattere tranne  $. La conversione si ferma appena
viene incontrato $. Il resto dell'input rimane nel buffer, quindi se non
ti serve ti consiglio di svuotarlo con un ciclo simile a questo:
while(getchar() != '\n')
       ;
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
"La mia teoria scientifica preferita e` quella secondo la quale gli 
 anelli di Saturno sarebbero interamente composti dai bagagli andati 
 persi nei viaggi aerei." -- Mark Russel

Newsgroup: it.comp.lang.c
Titolo: Dove trovare il C?

Esiste anche per il C un'interfaccia come quella del Turbo Pascal?
Se si comprende anche il Compilatore?
Dove potrei scaricare una versione recente?
(Per Win o Dos)
Grazie 1000
MaTTeO.
P.S.: Sicuramente è una domanda molto ricorsiva e dato che sono
all'inizio con questo linguaggio dove posso scaricare le FAQ?

L'ottimo port del GCC per DOS/WIN (DJGPP) e' un ottimo compilatore e
permette anche di scaricare alcuni editor. (interfaccia dos tipo TP).
Il sito e' 
http://www.delorie.com/djgpp/
 attenzione alla scelta dei
componenti!! Questo programma e' multipiattaforma e personalizzabile!!!
Tommaso

 ha scritto nel messaggio
news:39CF92AA...@libero.it...


 componenti!!
Per questo c'e' "zip-picker": rispondi a qualche domanda e ti dice
cosa scaricare.
-- 
 Ciao, Bianco.
 Reply to 
luca....@tiscalinet.it
Newsgroup: it.comp.lang.c
Titolo: [NEWBIE] Compilatore





Salve a tutti,


è la prim volt che posto qui, e di c ne conosco 
pochissimo, qualcuno mi dice dove trovare un buon compilatore x windows??? 
(pref. non lcc)


 


Grazie


 


Dark Angel



Arrivato su it.comp.lang.c, alterato in viso e con aria tracotante, 
Goldevil decise di renderci partecipi delle sue strambe convinzioni in 
merito alla vita ed al destino dell'universo...

Perchè non lcc? Ti ha dato problemi?
-- 
Nick Belane
Togli NOSPAM per rispondermi





Ehm...


...


...


...


...


...


...


...


...


...


...


...


...


...


...


...


...


...


...


...


...


...


mica mi puoi spiegare come usarlo??? Scusa se 
chiedo troppo...


 


Grazie ancora


 


Dark Angel [ TROPPO newbie ]


 


 



Se sei davvero newbie, e vuoi qualcosa di maneggevole, prova a cercare DJGPP
da 
www.delorie.com
 (scegli zip picker, e poi segui le istruzioni).
Non č un compilatore per windows ma per dos, il che significa che non puoi
fare applicazioni windows ma solo cose da consolle (finestra di dos, per
intenderci), perņ č semplice da utilizzare e per imparare il C standard
(senza estensioni specifiche di windows, etc.) va benone.
Lanugo

Newsgroup: it.comp.lang.c
Titolo: dubbio su directory

Salve a tutti,
come posso fare se voglio creare il file pippo.txt in c:\pippo ma la
directory c:\pippo non esiste? ovvero se un utente vuole aprire in modalità
scrittura o append il file pippo.txt che ancora non esiste, passando come
parametro alla fopen c:\pippo\pippo.txt, essa restituirà un puntatore a
NULL, quindi non creerà il file. Tutto ciò è dovuto al fatto che la
directory non esiste...
quindi come si può procedere. sto provendo con system, ma la cosa non mi
piace in quanto non è portabile su machine linux.
spero di essere stato chiaro :-)
ciao ciao

 non è portabile
E' proprio cosi'.
-- 
-=[]=---iAN CooG/HokutoForce+TWT---=[]=-
Boost the performance of your PC: DEL C:\WINDOWS

 ha scritto nel messaggio
news:c5reu6$eov$1...@lacerta.tiscalinet.it...

Newsgroup: it.comp.lang.c
Titolo: t LISA-SECUR-SITE-CLUBS DA NON PERDERE!!!

X-Newsreader: LisaNews 1.0 "TanaDos" (Minux 2.2.3/7.8.9, Rev 2/1.0)
X-Mailer: Mozilla 6.1 [en] (X11; I; Minux 2.2.3 i486)
X-Accept-Language: en
X-NoArchive: Yes/No
 Dicono di noi che siamo uno dei migliori siti della sicurezza in Italia, noi
 non siamo tanto presuntuosi e lasciamo a voi deciderlo.
 Abbiamo quello che vi serve per usare bene la rete e per programmare usando
 gli stessi strumenti che usiamo noi che sono i migliori.
 Tutto quello che vi serve noi ve lo possiamo dire basta solo che vi
 inscrivete alla LISA e poi potete averlo gratis per tutta la vita.
 
  L.I.S.A. SICUREZZA :  
http://utenti.tripod.it/~Lisa_Sicurezza/
  Per inscrizioni e informazioni : 
lisa...@hotmail.com
 
 %^\_/^%^\_/^%
@@@@@@@@@@@@@@@
I HAVE A DREAM!
@@@@@@@@@@@@@@@@
 %^\_/^%^\_/^% 

vi prego di non dare retta a questi emeriti coglioni (e scusate il volg.)
gia' solo per il fatto che postano in newsgroup non inerenti a cio' di cui
parlano.
Non hanno niente da fare e scrivono solo cretinate. Comunque, se volete
farvi delle risate potete visitare il sito.
--
davser - 
dav...@libero.it
 - 
http://davser.cjb.net

 ha scritto nel messaggio
news:8da73n$hfo$6...@nslave2.tin.it...

Newsgroup: it.comp.lang.c
Titolo: Chi mi spiega l'uso di Windows

Salve a tutti , uso il Djgpp , c'è qualcuno che mi spiega
l'uso del comando  Windows ?
E possibile avere un esempio di codice?
Grazie a tutti
Ciao Roberto

 E possibile avere un esempio di codice?
Sbagliato tutto, se ti riferisci (quasi sicuro) a Windows
come sistema operativo(se windows è un comando, ignora
questa risposta): DJGPP è una versione x Dos di Gcc, quello
della Gnu incluso in Linux, per creare applicazioni a
finestre devi usare CygWin (si tratta sempre di gcc, ma
portato su windows) o mingw32
Mingw32 cercalo sul sito di gcc 
http://gcc.gnu.org
, vai sul
link piattaforme (platforms), mi pare a sinistra, e cerca
windows
Per cygwin 
http://sources.redhat.com/cygwin/
Esiste anche rsxdjnt, un add-in per djgpp che permette di
creare applicazioni windows; tuttavia crea problemi di
compatibilità con DJGPP e te lo sconsiglio. Se nonostante
ciò lo vuoi, cercalo sul sito di djgpp 
www.delorie.com/djgpp
--
Paolo Giarrusso


Newsgroup: it.comp.lang.c
Titolo: Programmare navigatore satellitare

Salve a tutti!
Avete presente i cd-rom per la navigazione satellitare? Bene io ho
quello che danno di serie alla fiat punto nuova (blaupunkt travelpilot
rns3 con cd-rom teleatlas+deagostini) e mi chiedevo se non potessi
migliorarlo un pò, visto che ci sono quasi 200Mb liberi nel cd.
Leggendo il disco si trovano moltissimi file .dat nella directory
principale, qualche .txt e nessuna subdir. Io non so quasi nulla di
programmazione ma se c'è qualcuno che può aiutarmi o darmi delle
informazioni glie ne sarei grato.


Newsgroup: it.comp.lang.c
Titolo: puntatori:non capisco....qualcuno sa dirmi il perchè ?

Perchč cosě funziona...
#include <stdio.h>
void print_string(char *p[], int n);
int main()
{
char
*message[8]={"uno","due","tre","quattro","cinque","sei","sette","otto"};
print_string(message, 8);
return(0);
}
void print_string(char *p[], int n)
{
int count;
for(count=0;count < n;count++)
printf("%s",p[count]);
printf("\n");
}
E cosě no ???????????
#include <stdio.h>
int main ()
{
char
*stringa[10]={"uno","due","tre","quattro","cinque","sei","sette","otto","nov
e","dieci"};
char *ptr[];
int x;
ptr=stringa;
for(x=0;x<10;x++)
printf("%s\n",ptr++);
return(0);
}
infatti in fase di compilazione, il secondo listato da:
stringhe2.c: In function `main':
stringhe2.c:8: array size missing in `ptr'
stringhe2.c:12: incompatible types in assignment

 char *ptr[];
il C non ti permette di fare questa cosa... forse vuoi **ptr o qualche cosa
del genere, scusa ma non ho letto tutto il tuo msg...
Tommy


Non garantisco...
1) la definizione di ptr dovrebbe essere
char * * ptr;
2) nel ciclo io scriverei
ptrintf("%s\n",ptr[x]);
ma forse va bene anche quello che hai scritto tu.
1) Non credo si possa dichiarare un array senza dimensionarlo, č l'errore
che ti viene segnalato alla riga 8;
    con ptr dichiarato a quel modo ti viene segnalato errore anche
l'assegnamento ptr=stringa, alla riga 12,
    non si possono assegnare array a degli array, ma si possono assegnare
array a dei puntatori...
Ciao,
Ema

 ptr=stringa;
int i;
for ( i = 0; i < 10; ++i )
    ptr[ i ] = stringa[ i ];
Oppure potresti utilizzare la memcpy():
memcpy( ptr, stringa, sizeof( stringa ) );
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg

Newsgroup: it.comp.lang.c
Titolo: FILE * : dubbi

[...]
FILE *ListaDiFile[100];
[...]
ListaDiFile[0]=fopen("c:\\esempio.txt","r");
ListaDiFile[1]=fopen("c:\\esempio2.txt","r");
E' tutto ok?



Si'.
Newsgroup: it.comp.lang.c
Titolo: Programmazione X e finestre.

Sto programmando in X utilizzando la Xlib.h, riesco tranquillamente a collegar
mi al Display e a creare le mie finestre, ma non riesco a mantenerle permanenti
sul display remoto cioe' quando mi scollego le finestre si chiudono,qualc'uno 
puo' aiutarmi??
Grazie :) 
-- 
 _   __       ______ 
| | / / _ __ / _  / |
| |/ / | '_ \\// /| |
| / /__| | | |/ //\ |
| \____/_| |_/____/ |
|_|               |_|

 le finestre si chiudono,qualc'uno puo' aiutarmi??
  Muble... in che senso "si chiudono"? Dato che X e` un protocollo di
comunicazione di rete, e` abbastanza normale che quando il client (i.e.
l'applicazione) chiude la connessione, il server rilasci le risorse
(i.e. la finestra). 
  Ho capito cosa ti serviva?
	Alla prossima,
		Marco

 		Marco
Si lo so ma volevo sapere se era possibile scollegarsi dal display e lasciare
aperte le finestre create dall'applicazione?? Cmq ti ringrazio. :)


 e lasciare aperte le finestre create dall'applicazione?? 
  Non si puo`, a meno di non ravanare accuratamente nel codice di
qualche window manager in modo da fargli assumere l'ultimo contenuto
della finestra prima dello scollegamento e farlo poi gestire da lui.
  Scusa, ma a che ti serve? Magari qualche soluzione alternativa c'e`...
	Alla prossima,
		Marco

 		Marco
Sto solo facendo qualche esercizio di programmazione X a basso livello, cmq
grazie per le informazioni vedro di trovare qualche trucchetto per aggirare il
problema.
Ciao 


Newsgroup: it.comp.lang.c
Titolo: Problemi con i record 2

Grazie a tutti x le risposte a "problemi con i record".
Mi ritrovo ora con un  nuovo problema con i record:
Ho il solito file contenente un insieme di record di dimensione
variabile del seguente tipo:
- info: stringa di max 30 caratteri;
-code: stringa numerica di max 9 caratteri(valore intero senza segno);
-priority: stringa numerica di max 2 caratteri(valore intero senza
segno);
Prima di ogni campo vi è un byte che ne indica la dimensione. Esempio:
0x08 paperino 0x05 12345 0x02 23 0x05 pluto 0x03 456 0x01 3
................ (lo spazio vuoto c'è solo x chiarezza)
Dovrei scrivere una procedura che scorre tutto il file ed inserisca i
vari record in una coda con priorità (heap), ordinandoli in base al
campo priority. La mia difficoltà è quella di estrarre i record da
passare alla coda a causa del byte che indica la dimensione.
Ancora una volta confido nel vostro aiuto


Per poterci lavorare sopra puoi dirmi se esiste un carattere che marca
la fine del record ?
gfb

 gfb
No, i record non hanno caratteri di separazione.
Grazie x l'interessamento.
Attendo con ansia
Newsgroup: it.comp.lang.c
Titolo: Creazione dei .h

Ciao a tutti,
mi sono sempre chiesto una cosa: e' possibile creare direttamente un
file .h contenente le dichiarazioni delle funzioni a partire dai file
.c?
Per esempio: se avessi due file a.c e b.c ed entrambi contengono
funzioni che si chiamano a vicenda, posso avere un file d.h che viene
incluso in tutti e due i file e che contiene le dichiarazioni delle
funzioni di entrambi. Visto che le funzioni sono presenti in entrambe i
files mi domandavo se eseste un comando che permetta qualcosa del
genere.
Grazie e ciao
Scola

 Scola
Ciao a te
--
Paolo Giarrusso
Per rispondere togliere solo "TOGLIMI" dall'indirizzo, non _spam.

 wrote in message
news:3D2AB551...@epfl.ch

Basta fare cosi':
#ifndef __MY_HEADER
#define __MY_HEADER
//QUI INSERISCI I PROTOTIPI DELLE FUNZIONI
#endif __MY_HEADER
Poi utilizzi questo file richiamandolo con 
#include "myheader.h"
nei file in cui tiserve.
NB: myheader.h e' il nome che dai al file
__MY_HEADER e' una define per evitare di includere piu' volte lo stesso
file
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

file
Due piccole note:
1) sarebbe meglio fare #define __MY_HEADER_H, ovvero usare il suffisso
   "_H" per indicare che e' una define che fai per includere un .h. 
2) Anche se non dovrebbe dare problemi in questo caso, bisorrebbe 
   evitare di usare nomi che iniziano per "_" o "__" (sia per le 
   funzioni, che per le variabili che per le define: sono riservati
   per la libreria standard del C (e quindi in genere si usa lo stesso
   namespace anche per le funzioni non standard fornite assieme alla 
   libreria).
La soluzione migliore sarebbe quindi dichiarare semplicemente:
#define MY_HEADER_H
Che non dovrebbe conflittare con nulla d'altro, se non con un'altra
dichiarazione di una libreria chiamata my_header.h (ma in tal caso
avresti problemi piu' seri che non un conflitto del nome nelle
define).
-- 
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: identificare il tipo

Come fanno le funzioni a parametri variabili come printf a riconoscere 
il tipo di parametro passato? Per quel che ne so le variabili sono tutte 
rappresentate allo stesso modo in memoria e sta alla funzione capire 
come sono codificate.
-- 
Devaraja (Xdevaraja87^gmail^c0mX)
Linux Registerd User #338167
http://counter.li.org

 a riconoscere il tipo di parametro passato? 
La risposta alla tua domanda e' che printf non sa riconoscere un bel
nulla, spera che quello che tu abbia detto sia vero.
Per questo la printf e' pericolosa e bug-prone (ok, questa e' una
affermazione da programmatore C++)
Tommaso
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 il tipo di parametro passato? 
http://www.opengroup.org/onlinepubs/007908799/xsh/stdarg.h.html
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 il tipo di parametro passato?
Le funzioni non riconosceno il tipo del parametro passato.
Qui
	printf("%s",p);
la funzione *crede* che p è un parametro di tipo (char*) che punta ad
una stringa perche c'e' un %s nella stringa formato.
-- 
Horst

Newsgroup: it.comp.lang.c
Titolo: Domanda fin troppo facile per voi...

Ho da farvi una domanda a cui non sono riuscito a rispondere: come si fa a
far aggiungere automaticamente ad ogni messaggio inviato quella breve frase?
(in Outlook express...)

 ha scritto nel messaggio
news:rc4a6.6421$lV5.1...@twister1.tin.it...


(in Outlook express...)
E la tua domanda sul C e' ?
Augusto Pucci ( 
http://www.prospektiva.it/webmaster/
 )
Webmaster di Prospektiva On-line
http://www.prospektiva.it
Webmaster di 
CO.DI.CI
. Siena
http://codici.supereva.it

Newsgroup: it.comp.lang.c
Titolo: problema di tempi

Sto sviluppando un client che dopo 3 min si sconette e cambia server.Come 
faccio a dirgli di chiamarmi una fun dopo 3 min . Ho gia usato i Fds per 
la gestione del time out delle connessioni???
GRAZIE
	<SAX>


Cos'e' un Fds (forse "Figlio della sfiga")?
--
Alessandro Staltari
staltari(a)
geocities.com

Newsgroup: it.comp.lang.c
Titolo: perchè non salva il puntatore??





Mi sto dannando per capire per quale motivo le 
stesse funzioni che salvano gli interi e i caratte non possono salvare anche i 
puntatori!!!


 


Allora 


 


se ho:


 


int i;


 


/* ed uso la funzione fwrite per 
salvare...*/


fwrite(&i,sizeof(i),1,stream);


fread(&i,sizeof(i),1,stream);
  /* ...funziona che 
una bellezza anche se uso una struttura di interi e caratteri*/


 


ma nel momento in cui utilizzo:


 


char *p;


 


p="mannaggia";


 


 


fwrite(p,sizeof(p),1,stream);


fread(p,sizeof(p),1,stream);
// non riesco ad ottenere lo 
stesso risultato perchè???


 


 


grazie in anticipo!


 




Perché in questo modo, se non vado errato, scrivi sul file solo un
numero di caratteri pari alla dimensione del puntatore e non della
stringa da esso puntata. Prova ad utilizzare strlen( p ) al posto di
sizeof( p ).
EMG

 EMG
....esatto, solo non dimenticare di allocare prima p con una malloc.
--
Ivan Molella
__LINUX__ the choice of the __GNU__ generation
icq# 97960484
Newsgroup: it.comp.lang.c
Titolo: [Help] Pattern Matching

Qualcuno di voi ha l algoritmo boyer-moor scritto in C già funzionante o sa
dove trovarlo?
Grazie mille

 sa dove trovarlo?
Copiata da una libreria, usate anche per un laboratorio in universita'.
Prima chiami la init(), una volta per pattern, poi la match() quante volte
ti serve.
Non dovrebbero esserci grossi bug, facci un po' di testing comunque.
<code>
size_t str_bm_initskip (char skip [], char * p)
{
    // skip: array di STR_SKIP_SIZE caratteri
    // p: pattern da cercare
    int i, pmax;
    pmax = strlen(p);
    for (i=0; i<STR_SKIP_SIZE; i++)
        skip[i] = pmax;
    for (i=0; i<pmax; i++)
        skip[(unsigned char)p[i]] = pmax-i-1;
    return pmax;
}
char * str_bm_match (char * s, char * p, int cs, size_t maxp, char skip[])
{
    // s: stringa
    // p: pattern
    // cs: case sensitive (boolean)
    // maxp: posizione massima a cui arrivare
    // skip: lo skip, calcolato dalla init()
    int pi, plen;
    char c;
    if ( s == NULL || p == NULL || (plen = strlen(p)) == 0)
        return NULL;
    pi = plen-1;
    maxp--;
    while (maxp >= 0) {
        printf("s_p: %d  - p_p: %d\n", maxp, pi);
        /* a seconda del case sensitive campio il pattern */
        if (cs)
            c = s[maxp];
        else
            c = tolower(s[maxp]);  
        /* effettuo il confronto sul carattere giusto */
        if (c == p[pi]) {
            if (pi == 0)
                return s+maxp;
            else {
                pi--;
                maxp--;
            }
        }
        else {
            pi = plen-1;
            maxp -= skip[(unsigned char)c];
        }
    }
    return NULL;
}
</code>
-- 
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."

Grazie mille domani la provo

Newsgroup: it.comp.lang.c
Titolo: Perché per il djgpp esiste solo la 13H?

Scusate se l'argomento è OT però vorrei sapere come si fa a far digerire al
djgpp la modalità grafica 12H dell'interrupt 10H servizio 0.
Le uniche modalità che mi accetta sono le modalità testo, la modalità
640*480*1 bit oppure la 13H (320*200*8 bit).
Se provo a settare la 12H me la vede come un 640*480*1bit.
Come si fa?
Sistema operativo: w98.
Editor: Rhide.
Conoscete qualche link che possa spiegarmi come crearmi una modalità a
800*600*8 bit? Vorrei poter passare un buffer direttamente alla memoria
video a questa risoluzione. Come si fa ad attivarla? Come si fa a crearla?
(non mi interessa l'uso di allegro o librerie simili, vorrei farlo io).
Ciao e grazie anticipatamente.
giovann...@libero.it

 siccome le librerie tipo allegro lo fanno e i sorgenti di queste ultime
sono a disposizione....aprili e vedi!

 sono a disposizione....aprili e vedi!
Grazie, ma adesso mi sono intrippato con le VBE.
Ciao,
giovann...@libero.it