mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: la <string.h> e' ANSI ?

Le funzioni della string.h, in particolare la strstr() sono supportate
da qualunque compilatore ?
Augusto Pucci
Webmaster di Prospektiva On-line
http://www.prospektiva.it


mi pare che alcune sono standard (strstr, strchr, strspn)
e altre no (strlwr, strupr...) ...
comunque penso che siano supportate dalla maggior parte
dei compilatori ... forse cambia il prototipo ? (non ne
sono sicuro ...)
una bella risposta sicura ...
ciao ciao
-- 
Antonio barbone ......
Outside of a dog, a book is man's best friend.
Inside of a dog, it's too dark to read.
		-- Groucho Marx

da qualunque compilatore ?
Quelle standard si'. strstr() e' standard quindi DEVE essere
supportata da qualsiasi compilatore conforme.

 da qualunque compilatore ?
Si, da qualunque compilatore conforme allo standard.
EMG

 e altre no (strlwr, strupr...) ...
Tutte le funzioni dell'header standard string.h sono standard. Se tra
queste qualche compilatore ci infila funzioni non standard il problema
non è dell'header file.
EMG

EMG
Ah, senti, a proposito di conformita' allo standard... se non erro
esiste da una macro, o una direttiva al precompiler che permette di
capire se un compiler e' o no standard..siccome non riesco + a trovare
quella macro o direttiva che fosse...tu x caso mica ricordi qual'era ?


 quella macro o direttiva che fosse...tu x caso mica ricordi qual'era ?
Non mi risulta che esista una direttiva standard al riguardo. Ogni
compilatore può o meno avere la sua. A quale compilatore ti riferisci?
Ad esempio, il gcc ha il simbolo macro __STRICT_ANSI__.
EMG

Ad esempio, il gcc ha il simbolo macro __STRICT_ANSI__.
Ah bhe mi serviva proprio quella del gcc comunque quindi garzie... un
altra cosa, sempre  a proposito di standard esiste da qualche parte
una lista degli header e delle annesse funzioni (xche nulla vieta che
in un header standard ci siano state messe anche funz non standard
giusto ?) che siano conformi allo standard e quindi supportate da
qualsiasi compiler su qualsiasi piattaforma ?
PS : a proposito, quando qualche mese fa discutevamo dell'importanza o
meno di standard comuni per il linguaggio C...bhe... avevi ragione
tu... mene sono accorto appena ho dovuto cominciare a sviluppare
applicativi multipiattaforma e scrivere CGI conuna piattaforma e
doverli poi ricompilare su un altra...


 doverli poi ricompilare su un altra...
Grazie di avermelo riferito.
EMG

 da qualunque compilatore ?


 ad altri! ;)
	news:it.comp.lang.c++
	Alla prossima,
		Marco

Newsgroup: it.comp.lang.c
Titolo: Porgrammare in win senza visual c++

è possibile programmare in windows senza usare il Visual C++ della M
$????
-- 
GRAZIE
<<SAX>>
E-mail:
linefin...@tiscalinet.it
Web Page:
http://it.geocities.com/xeus23/

 $????
Si!
Tommy
Newsgroup: it.comp.lang.c
Titolo: Strutture dati multidimensionali

Ciao a tutti,
qualcuno sa suggerirmi qualche libro che illustri le tecniche di
implementazione di strutture dati multidimensionali (B-Trees, Pyramid-Trees,
etc)?
Grazie a chi vorrą aiutarmi.
Maurizio


          Introduzione agli algoritmi
AUTORI: corme, leiserson, rivest
Jackson libri
vedi se può esserti utile
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/
Newsgroup: it.comp.lang.c
Titolo: [puntatori a funzioni] per un framework di test...Tommaso

Salve a tutti!
Sto cercando di implementare un semplicissimo framework per i test in C.
Il problema è il seguente:
come far sì che il programma chiami una funzione che io passo come stringa ?
IPOTESI: le stringhe che io passo tramite console o redirect sono TUTTE
del tipo : testQUALSIASICOSA() ovvero iniziano con 'test' e non hanno
argomenti
Il problema nasce dal fatto che non conosco se il C ha le proprietà di
RIFLESSIONE (come, ad esempio, in Java).
Se non sapete rispondermi, potete indicarmi risorse di qualsiasi tipo ?
Grazie a tutti, complimenti per il vostro aiuto !
Tommaso (
t...@quinary.com
)

 RIFLESSIONE (come, ad esempio, in Java).
Ignoro cosa tu intenda per `riflessione', ma non ne ho mai sentito 
parlare a proposito del C. Di sicuro lo standard non ne parla. Se ha a 
che fare col chiamare una funzione tramite una stringa contenente il suo 
nome, allora no, te la devi gestire da solo (vedi sopra).

 ?
Il linguaggio C non ha in sé meccanismi per svolgere questa operazione. 
L'ambiente, però, potrebbe offrire API per tradurre nomi di simboli in 
puntatori a funzione. Sui sistemi Linux e Solaris, ad esempio, c'è la 
famiglia di funzioni di 'dlopen', che può operare sia su una libreria 
dinamica sia sullo stesso programma in esecuzione (v. man). In altri 
ambienti ci sarà qualcosa di equivalente. Tutto questo esula però esula 
dagli argomenti di questo newsgroup.
Max

 la funzione tramite il relativo puntatore.
Il problema con questo approccio è che si limita la possibilità di testare
qualsivoglia funzione definita
dall' utente.
Tra l' altro è lo stesso approccio usato da chi ha implementato CUnit.
Mi fa riflettere il fatto che il C non ha la proprietà di riflessione;
vorrei comunque ringraziarvi
per l' attenzione mostrata !
Tommaso.

 Mi fa riflettere il fatto che il C non ha la proprietą di riflessione;
Ricorda che il C e' stato pensato per essere veloce e compatto. 
Concorderai che l'implementazione di un framework per la "reflection" 
non e' proprio in linea con questa filosofia.
PS: se non sbaglio, pero' il C++, con l'RTII (o come cippa si chiama) 
offre qlc del genere...
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */

...

Scusami se non ti so rispondere, sai non mi è capitato ancora di
richiamaew funzioni dalla command line. Ti do cmq un link dove puoi
trovare le risposte a tutti i tuoi dubbi
http://ada2.unipv.it/biblio/trickyc/
 cerca " command line" nell'
indice.
Credo che la soluzione stia nell' uso del comando:
 int main (int argc, char **argv) 
che non ho ancora studiato bene
Ciao, fammi sapere. Sai, interessa anche a me.
 
P.S: A proposito, conosci il MATLAB?

 offre qlc del genere...
RTTI -> Run-Time Type Identification
Come lo useresti per arrivare a qualcosa che assomigli alla reflection?
Spiega spiega :)
xpost e f/up
Luca
-- 
Home: 
http://kronoz.cjb.net
Not an editor command: Wq
Newsgroup: it.comp.lang.c
Titolo: colorare sfondo e testo in ansi c.

ho letto un post precedente su come colorare il testo in c,
usando la libreria <conio.h>, xò ho letto che non fa parte del ansi c,
e che c'è una libreria <vga.h>
che può essere usata x cambiare il colore all testo e allo sfondo,
solo che non so come si usa, avete qualche esempio, oqualche altra libreria
da suggerirmi
con esempio?
THX Mamila

 ha scritto nel messaggio
news:V0aO7.4792$NA1.1...@news2.tin.it...

vga.h non é standard e non esiste una libreria in ISO C che faccia quello
che dici!!!

 wrote in message
news:9udnq5$cm8$1...@pegasus.tiscalinet.it...


 THX Mamila.
$ man ncurses
Ciao
Alessio


Cosa intendi per il background da solo?...Vuoi far colorare tutta la
finestra?
In questo caso basta fare
textattr(123);
clrscr();
sotto djgpp. Naturalmente questo non é portabile perché
come ti dicevo il C "non sa" cosa sia un display e tanto meno i colori per
cui bisogna sopperire con librerie esterne.Per quanto riguarda il Linux
potresti provare la libreria ncurses che ha un porting anche sotto djgpp
(PDcurses).
Distinti saluti
(my name is abacuc e non Abacus...non faccio statistiche!)

 wrote in message
news:9ufojt$a5j$1...@pegasus.tiscalinet.it...

Newsgroup: it.comp.lang.c
Titolo: *p = &a;

Ciao a tutti,
nel libro " C didattica e programmazione " ho trovato
questa dichiarazione:
int a, b, *p = &a, *q = &b;
ehm... ma scrivere:
*p = &a;
non è come assegnare l'indirizzo dell'intero a, al
valore intero puntato dalla variabile di tipo pointer p?
Detto meglio, non e'  come assegnare
*p = 65125;                             /* numero inventato */
ovvero  l' indirizzo in decimale di a?
Grazie
   Leonardo

"NiHiRa" <nih...@NOSPAMnihira.it> ha scritto nel messaggio
news:a67k2h$klp$1...@fe2.cs.interbusiness.it...

int a;
int *p;
p= &a;
idem per b e q .

 valore intero puntato dalla variabile di tipo pointer p?
La dichiarazione va letta come:
int  a;
int  b;
int* p = &a;
int* q = &b;
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG


non su quella riga.
quello che dici tu e' vero in questo codice:
int a;
int *p;
*p=&a; /* che e' un errore */
nella riga che hai postato stai dichiarando un puntatore e nello stesso
momento lo inizializzi, quindi stai eseguendo in una unica istruzione le due
istruzioni seguenti:
int *p;
p=&a;
ciao
donCiccio

Newsgroup: it.comp.lang.c
Titolo: liste dinamiche

Qualcuno pf mi posta un esempio di codice semplice semplice che usa
delle liste dinamiche?
Per esempio con una struttura semplice con nome e cognome, dove tramite
malloc() posso creare nuovi elementi.
Sul Kernigan non ho trovato molto e mi serve un esercizio didattico per
capire il principio.
Grazie 1000
Ciao
Christian

delle liste dinamiche?
Se guardi qualche thread + in su', c'e' un mio esempio.
--
Andrea Laforgia - walkietalkie(at)
libero.it
#exclude <windows.h>

grazie 1000, mi era proprio sfuggito.
ciao
Christian

ehm... essendo abbastanza newbie il tuo esempio qui sopra mi risulta
troppo difficile.
Non ne avresti uno piu' "banale"?
Se no fa niente, come non detto.
ciao
Christian

Newsgroup: it.comp.lang.c
Titolo: Info Documentazione

Salve,
sono nuovissimo al linguaggio C, sto muovendo i primi passi e la cosa su cui
mi sto bloccando è il fatto che non ho a disposizione un documento, un
manuale o una guida di riferimento in cui siano elencate proprietà e metodi
delle principali librerie.
Sapete consigliarmi un link o un libro possibilmete in italiano (essendo
all'inizio) ma va bene anche in inglese al fine di poter avere dei
riferimenti?!?.
Grazie a tutti.
Carlo

 wrote in message
news:a8c2o1$qg5lo$1...@ID-99251.news.dfncis.de...

Linguaggio C di Brian W. Kernighan e Dennis M. Ritchie edito Jackson
Libri.
Corso Completo di C di Deitel padre e figlio.
Scusa l'osservazione ma potevi dedurlo leggendo mezzo post... il K&R è
(giustamente) onnipresente su questo NG.
Buono studio e buon divertimento, ciao. 
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

C Corso completo di programmazione
Deitel & Deitel
Apogeo
davvero un ottimo libro, graduale nell'esposizione e molto ricco di esempi.
Il K & R a mio avviso č troppo difficile per uno che muove i primi passi...
Saluti,
Mario
Newsgroup: it.comp.lang.c
Titolo: esempio del Ritchie

ciao, stavo leggendo la parte dedicata ai puntatori del libro del Ritchie
quando, a pagina 85, ho letto un esempio che non ho capito bene:
i riferimenti a puntatori possono anche apparire nella parte sinistra di un
assegnamento:
se px punta a x, allora *px = 0 assegna zero ad x ( ok, va bene ), e *px +=
1 lo incrementa ( ok, va bene anche questo ), come anche questa espressione
lo incrementa: (*px)++ ...
parole testuali: "nell'ultimo esempio le parentesi sono necessarie, senza di
queste l'espressione incrementerebbe px al posto dell'oggetto a cui punta,
poiche' gli operatori unari ( * e ++ ) vengono valutati da destra verso
sinistra"...
rifletto... senza le parentesi *px++ io valuto prima il valore di px e poi
incremento di 1 l'indirizzo del puntatore, giusto???
es while (*pt++ = *st++) ..., invece con le parentesi, (*px)++ che
succede???
secondo me viene ugualmente valutato prima il valore di px ( che sta dentro
le parentesi ) e poi viene incrementato di 1 l'indirizzo, immagino quando px
punta a un vettore di caratteri, per esempio...
la domanda e ' questa: nella mia ignoranza non vedo la differenza tra questa
espressione tra parentesi e quella senza, chi puo' spiegarmi la
differenza???
ciao e grazie in anticipo!!!

 quando px punta a un vettore di caratteri, per esempio...
L'errore è qua, non incrementa il puntatore ma l'oggetto puntato

 punta a un vettore di caratteri, per esempio...
L'operatore  postifisso di  incremento  si  applica all'espressione  tra
parentesi. Quello che  viene incrementato e` (*px),  ovvero la variabile
puntata da /px/.
(*px)++ e` equivalente a *px = *px + 1
*px++ e` un po' piu`  subdolo: l'operatore di incremento viene applicato
a px, ma il valore restituito dall'espressione px++ e` ancora px, su cui
viene applicato l'operatore di dereferenziazione.
*++px  e` simile,  ma la  differenza sostanziale  e` che  l'operatore di
incremento prefisso resituisce il  valore incrementato, quindi il valore
dell'espressione ++px e`  (px + 1). In questo  caso viene dereferenziato
l'elemento successivo a quello puntato.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
You and me baby ain't nothin' but mammals
So let's do it like they do on the Discovery Channel
Newsgroup: it.comp.lang.c
Titolo: Convertitore decimale binario

Salve, vorrei creare un convertitore di numeri decimali a numeri binari,
potete dirmi come si scrive il codice?
PS: Potete dirmi se nn disturbo molto anche quello per convertire da
decimali a esadecimali?
GRAZIE

 decimali a esadecimali?
Stessa cosa, solo che devi fare dei controlli nel caso che il resto sia
maggiore di 9:
int n = 123;
char num[128];
int c = 0;
while(n) {
	int x = (n % 16);
	switch(x) {
		case 15:
			x = 'F';
			break;
		case 14:
			x = 'E';
			break;
		case 13:
			x = 'D';
			break;
		case 12:
			x = 'C';
			break;
		case 11:
			x = 'B';
			break;
		case 10:
			x = 'A';
			break;
		default:
			x += '0';
	}
	num[c++] = x;
	n /= 16;
}
num[c] = 0;
 
printf("%s\n", num);
Magari  potresti aggiungere  un  controllo sulla  lunghezza massima  per
evitare overflow.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
"Fare l'amore con dieci donne e` fantastico, soprattutto perche` ti
 presentano un sacco di amiche." -- Fabio Di Iorio
Newsgroup: it.comp.lang.c
Titolo: C e Blob Oracle

Buongiorno ,
conoscete il modo  ,se esiste ,per leggere un dato Blob  con il C/C++.
La nostra intenzione è di creare un programma che trova un determinato campo
nel record Oracle Blob
Grazie
Roberto

 conoscete il modo  ,se esiste ,per leggere un dato Blob  con il C/C++.
Le librerie e la documentazione di oracle era troppo banale?
Newsgroup: it.comp.lang.c
Titolo: descrittori di file e fork

salve a tutto il ng,
avrei una domanda relativamente a questo breve programma (compilatore
gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release), OS ovviamente 
linux, kernel 2.2):
#include <stdio.h>
#include <unistd.h>
int main() {
char buffer[200];
int i;
int fd1,fd2;
        if (!fork()) {
                fd1=dup(0);
                while(1) {
                        i=read(fd1,buffer,120);
                        buffer[i]=0;
                        printf ("figlio 1: %s",buffer);
                }
        }
        if (!fork()) {
                fd2=dup(0);
                while(1) {
                        i=read(fd2,buffer,120);
                        buffer[i]=0;
                        printf ("figlio 2: %s",buffer);
                }
        }
        while(1) {
        i=read(0,buffer,120);
        buffer[i]=0;
        printf ("padre: %s",buffer);
        }
}       
 
perdonatemi lo stile poco "K&R" ma volevo fare una cosa rapida.
Il programma molto semplicemente dovrebbe leggere una stringa da stdin e 
stamparla in printf su stdout. Questo dovrebbe farlo, in teoria, tre volte: 
immetto la stringa e sia il padre che i due figli la prelevano. Invece 
(purtroppo) non e' cosi'. Uno solo (a random) dei tre processi mi legge la 
stringa. Per gli altri e' come se non fosse mai stata immessa. Io penso sia 
un problema di prelievo dallo stream: il primo dei tre processi che legge 
la stringa da stdin, svuota lo stream e quindi i processi successivi 
trovano lo stream vuoto.
Togliendo o mettendo le dup ottengo lo stesso risultato.
E' possibile, a vostro parere, dotare ognuno dei tre processi di uno stream 
(in questo caso stdin) a se' stante, in modo tale da impedire che il 
prelievo di uno interferisca sulla lettura degli altri?
TIA


«Se dio esiste, spero che abbia una scusa valida.»
(D. Pennac)
"munehiro" <mune...@NOinameSpAmm.com> ha scritto:
[snip]


"munehiro" <mune...@NOinameSpAmm.com> ha scritto nel messaggio
news:Jmjb6.263332$IP1.8...@news1.giganews.com...

Non credo che si possa a meno che non li sincronizzi opportunamente
attraverso semafori oppure una wait che aspetta la fine del processo figilo
prima di continuare. Comunque il codice che hai scritto non crea 2 processi
figli bensì 3, e inoltre usa la scive su stdout per ben 6 volte. Questo
perchè il processo figlio non viene fatto uscire con una exit o exec dopo il
blocco if.

"> figli bensì 3, e inoltre usa la scive su stdout per ben 6 >volte.
e inoltre scrive su ...
scusa l'errore

 prelievo di uno interferisca sulla lettura degli altri?
afaik no
non avrebbe senso avere tre stream stdin
pero` puoi sincronizzare i vari thread in modo che leggano in modo
sequenziale lo stdin (con mutex o semafori)
info glibc
ciao
Kronos
-- 
Home: 
http://kronoz.tsx.org
Sono un mirabile incrocio tra Tarzan e Giacomo Leopardi.
In me convivono tutte le doti intelluttuali di Tarzan e
tutta la prestanza fisica di Giacomo Leopardi.
A. Borsani
Newsgroup: it.comp.lang.c
Titolo: connessione a db

qualcuno mi a dire come colegarmi ad un db di access
cioe le righe di codice per la connection
oppure dove posso trovare queste informazioni
aiutoooo :-))
grazie
ciao morphi
--------------------------------
Inviato via 
http://usenet.libero.it



non so se può esserti d'aiuto questo link
http://www.mixsoftware.com/product/db_c_fn.htm
Ciao
Matic
Newsgroup: it.comp.lang.c
Titolo: aiuto su questo passaggio please!

Ciao a tutti,
sono alle prime armi con il C, sto perdendo la testa per questo punto:
nn capisco come mai nn accoglie mai la condizione anche quando sono ugauli
indirizzi[t].nome e num!!!
..la stessa funziona per gli interi invece che con le stringhe!!!
...il problema credo stai tutto li ma nn riesco a risolverlo!
mi aiutate???
void cancella1(void)
     {
      int t;
      char num[20];
      printf("inserisci nome: ")
     gets(num);
      for (t=0;t<DIM;++t)
       {
       if(indirizzi[t].nome==num)
        {
         indirizzi[t].età=0;
         indirizzi[t].nome[0]='\0';
         indirizzi[t].cognome[0]='\0';
        }
       }
     }
dato che ci sono un'altra cosa!
esiste una funzione clear screen?
cosa devo importare?
Ciao
Francesco


Talking about music is like dancing about architecture.
                -- Laurie Anderson

righe dello schermo ..
.. che non equivale a cancellare lo schermo, visto che il
cursore rimane in fondo al video.

 cursore rimane in fondo al video.
giusto .... risposta trabocchetto  ;-))) ho detto una str***ata ....


oppure system("cls") se usi un so microsoft

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

ciao a tutti!
vi è mai capitato di comunicare tramite USB con il c?
avreste per caso della documentazione, ho provato a cercare con google ma
non ho trovato niente ;)
grazie
ciro


Per il semplice fatto che non c'entra col C (o, per lo meno, con il C 
standard). it.comp.programmare.win32 o it.comp.os.linux.development.
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */

aceto wrote:

Cerca libusb su google, c'e' sia la versione linux che windows, comunque 
qui sei un po' OT mi pare.
Ciao,
Stefano.
Newsgroup: it.comp.lang.c
Titolo: cancellazione stringhe-caratteri

quali sono le istruzioni,in C, per cancellare stringhe e/o caratteri?
grazie
andrea
--------------------------------
Inviato via 
http://usenet.iol.it

grazie
Semplicemente l'operatore = (uguale)
Esempio di cancellazione (o meglio di inizializzazione) di stringa di
100 caratteri
for(i = 0; i < 100; i++)
  stringa[i] = 0;
Un altro modo č fare iniziare la stringa con il carattere '\0', che
identifica la fine della stringa. In questo modo eseguendo una printf,
non verrebbe stampato nulla.
Esempio
La stringa
char stringa[] = {"Nel mezzo del cammin di nostra vita"};
Puň essere 'cancellata' con l'istruzione
stringa[0] = '\0';
In questo modo la stringa diventa
'\0', "el mezzo del cammin di nostra vita"
se le funzioni di gestione delle stringhe che tu adoperi usano '\0'
come carattere che delimita la fine, non t'interessa tutta la parte
che lo segue.
-- 
Cordiali saluti
  Artemio

   stringa[i] = 0;
ma non sarebbe meglio una funzione tipo il memcpy() o bzero() ?
tanto per sapere

 ma non sarebbe meglio una funzione tipo il memcpy() o bzero() ?
bzero non e` standard, memcpy non fa quello che vorresti. La funzione
corretta e` memset:
memset(stringa, '\0', 100);
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
It can't rain forever,
but you can die before seeing the sun again.
Newsgroup: it.comp.lang.c
Titolo: Dati letti da file in singole variabili non corrispondono

Ciao,
ho un file:
00000000  37 7a bc af 27 1c 00 02  23 88 43 98 79 02 00 00
|7z..'...#.C.y...|
00000010  00 00 00 00 22 00 00 00  00 00 00 00 6c ec 1b 3d
|....".......l..=|
L'output del mio codice è:
[gt@Paradise Xarchiver_Test]$ ./7z_detect
First sig: 377abcaf271c
0
2
CRC: 98438823
NextHeaderOffset: 279
NextHeaderSize: 0
pippo: 3d1bec6c
NextHeaderOffset e NextHeaderSize sono a 64 bit quindi 8 byte ma il
valore di NextHeaderSize è 0 invece di 22 come si può notare da
sopra. Il mio codice:
#include <stdio.h>
#include <errno.h>
unsigned char sig[5];
unsigned char major;
unsigned char minor;
unsigned int crc;
unsigned long long header_offset;
unsigned long long header_size;
unsigned int pippo;
FILE *fd;
int main (int argc,char *argv[])
{
    fd = fopen ("test_senza_pass_2.7z" ,"r" ); // I'm on Linux so "r"
is ok :-)
    if (fd == NULL)
    {
        printf ("%s\n",strerror(errno));
        return 0;
    }
    fread (&sig,1,6,fd);
    printf ("First sig:
%x%x%x%x%x%x\n",sig[0],sig[1],sig[2],sig[3],sig[4],sig[5]);
    fread (&major,1,1,fd);
    fread (&minor,1,1,fd);
    fread (&crc,1,4,fd);
    fread (&header_offset,1,8,fd);
    fread (&header_size,1,8,fd);
    fread (&pippo,1,4,fd);
    printf ("%d\n%d\n",major,minor);
    printf ("CRC: %x\nNextHeaderOffset: %x\nNextHeaderSize:
%x\n",crc,header_offset,header_size);
    printf ("pippo: %x\n",pippo);
}
Qualcuno mi fa capire dove è l'errore ?
Grazie,
-
Colossus
Xarchiver, a GTK2 only archive manager -
http://xarchiver.sourceforge.net
Cpsed, a Linux OpenGL 3D scene editor - 
http://cpsed.sourceforge.net
Mizio, a QT proxy hunter scanner tool - 
http://mizio.sourceforge.net

 Qualcuno mi fa capire dove è l'errore ?
penso che sia solo un problema di "rappresentazione" di 
printf che ti mostra solo i primi 32 bit, perchè comunque il 
dato viene letto, e.g.:
unsigned char *p=(unsigned char*)&header_size;
 
printf("\n\n%x%x%x%x%x%x%x%x\n\n",p[0],p[1],p[2],p[3],p[4],p[5],p[6],p[7]);
ciao.

 %llx\nNextHeaderSize:%llx\n",crc,header_offset,header_size);
Grazie mille,
--


 %llx\nNextHeaderSize:%llx\n",crc,header_offset,header_size);
Grazie mille,
--

Newsgroup: it.comp.lang.c
Titolo: Per calcolare la data di Pasqua?

Qualcuno e' cosi gentile da spiegarmi l'algorito per stabilire la data di
Pasqua?
vi prego rispondetemi e' urgente.. se vi e' possibile anche in email ;)
Tnx

vi prego rispondetemi e' urgente.. se vi e' possibile anche in email ;)
/* Algoritmo di Gauss */ 
#include <stdio.h>
#include <stdlib.h>
const char stringa_mese[][10] = { "gennaio", "febbraio", "marzo",
                                  "aprile", "maggio", "giugno",
                                  "luglio", "agosto", "settembre",
                                  "ottobre", "novembre", "dicembre" }
;
void calcola_pasqua ( int anno, int * giorno, int * mese )
{
      int a, b, c, e, g, h, i, k, u, x, z ;
      div_t f;
      a = anno % 19 ;
      f = div ( anno, 100 ) ;
      b = f.quot ;
      c = f.rem ;
      f = div ( b, 4 ) ;
      z = f.quot ;
      e = f.rem ;
      f = div ( ( 8 * b + 13 ), 25 ) ;
      g = f.quot ;
      f = div ( ( 19 * a + b - z - g + 15 ), 30 ) ;
      h = f.rem ;
      f = div ( ( a + 11 * h ), 319 ) ;
      u = f.quot ;
      f = div ( c, 4 ) ;
      i = f.quot ;
      k = f.rem ;
      f = div( ( 2 * e + 2 * i - k - h + u + 32 ), 7 ) ;
      x = f.rem ;
      f = div ( ( h - u + x + 90 ), 25 ) ;
      * mese = f.quot ;
      f = div ( ( h - u + x + * mese + 19 ), 32 ) ;
      * giorno = f.rem ;
}
int main ()
{
      int giorno, mese, anno;
      printf ( "Anno : " ) ;
      scanf ( "%d", &anno ) ;
      calcola_pasqua ( anno, &giorno, &mese ) ;
      printf ( "Pasqua nel %d ricorre il %d %s\n",
               anno, giorno, stringa_mese [ mese - 1 ] ) ;
      return 0;
}
Newsgroup: it.comp.lang.c
Titolo: Abilitazione scrittura tastiera (applicazione distribuita)

2) Abilitazione scrittura tastiera (sempre con programmi in esecuzione
in "modalita`" client-server con uso di socket unix).
Dovendo permettere agli utenti che lanciano il mio client di usare la
tastiera per scrivere messaggi ad altri client ho pensato di abilitare
la ricezione su stdin (maschera select, FD_SET(0, ...)) solo dopo che il
client e` in "stato attivo" cioe` a sua inizializzazione avvenuta (puo`
passare un po` di tempo da quando il client si connette a quando viene
decretato "attivo" a tutti gli effetti nel sistema). Il problema e` che
se io batto invio mentre il client e` in attesa di inserirsi non succede
niente al momento ma quando abilito la lettura dello stdin, quasi ci
fosse memoria di quanto accaduto, il programma mi presenta la maschera
da far riempire all'utente. Io preferirei di gran lunga che gli invii
precedenti alla abilitazione andassero persi.
E` possibile un comportamento simile?
Come si ottiene?
Tenete conto che lo stesso inconveniente lo ritrovo quando sono in
attesa di inviare un messaggio e preferirei non solo non accettarne
altri ma neppure tener memoria del fatto che l'utente cercava di
scrivere quando io non volevo farglielo fare.
Cioe`, piu` in generale, durante la mia esecuzione io voglio che ci
siano dei periodi in cui l'utente e` abilitato a scrivere e dei periodi
in cui non lo e`. Ma voglio anche che durante questi ultimi periodi i
tentativi di scrittura dell'utente vengano ignorati e persi e che alla
successiva riabilitazione della scrittura si riparta ex-novo e l'utente
debba segnalare di nuovo di voler scrivere. Tutto cio` per maggior
pulizia e comprensibilita` di quanto avviene.
Grazie e saluti
-- 
Giuseppe R.
E-mail: mailto:
giuseppe...@SPAMnetit.alcatel.it
--
Posted from 
ns.alcanet.it
 [194.243.74.35] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 2) Abilitazione scrittura tastiera (sempre con programmi in esecuzione
Basta per favore non postare piu' qui' questi messaggi.
Vai su:
            it.comp.os.unix oppure
            it.comp.os.linux.development
Ivan Molella

             it.comp.os.linux.development
ok qua sono d'accordo con te, ma spesso anche la` dicono che questi
argomenti sono OT
forse servirebbe un it.comp.programmare.socket-unix   :-)
Ciao


Ma perche`?
Davvero, come ho gia' scritto piu' sotto, su
comp.unix.programmer discutono spesso di cose
come questa e probabilmente possono aiutarti.
F.
Newsgroup: it.comp.lang.c
Titolo: mouse mosso da tastiera

e possibile scrivere un programmino per muovore la freccetta del mouse con
i tasti della tastiera?
(incaso si mouse rotto  per esempio..,
ultimamente il mouse va malissimo..
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ultimamente il mouse va malissimo..
   Un'alternativa valida sarebbe acquistare, per pochi Euro, un mouse 
nuovo... :)
   Ad ogni modo, e` un problema fortemente dipendente dal sistema 
operativo: in linea di massima, dovresti scrivere un handler per gli 
eventi generati della tastiera ed intercettare i tasti prescelti, quindi 
provvedere al riposizionamento del cursore del mouse.
   Per maggiori informazioni, ti consiglio di riferirti al gruppo di 
discussione di argomento piu` prossimo al tuo sistema operativo.
-- 
Alla prossima,
Marco

 ultimamente il mouse va malissimo..
http://www.chl.it/w3obj/h/default/$ProductDetails?SESSION=9DkBqMYGz4Jlcsf8oyb6Cg__&A_CodArt=29695&I_CDSRoot=10612476&I_AbsCodDesTec=10891259&Folder=DET
Se proprio ti mancano le 9'000 lire del mouse, se pubblichi il numero del
tuo cellulare nel messaggio di risposta, te ne spedisco io uno a due tasti
(nuovo mai usato) che mi hanno regalato assieme ad una macchina.
Ovviamente spese a carico del destinatario.
A parte la studidita' della domanda (posta sul NG sbagliato), le risposte
che ti danno le leggi? La stessa domanda cretina l'hai fatta ieri (e ti
hanno risposto), forse sei solo in grado di scrivere ma devi ancora trovare
qualcuno che sappia leggere?
C:\>iao Angelo


 qualcuno che sappia leggere?
ops,,credevo di averla postata su c++.
ecco perche nonlla trovavo e l ho ripostata 
scusate

Newsgroup: it.comp.lang.c
Titolo: si può fare? programma che si autocancella

Salve ,
volevo fare una domandina ....
è possibile sovrascrivere un file che è in esecuzione o cmq
che è stato già aperto da un altro programma
vi ringrazio in anticipo per le risposte
gentilmente potreste rispondermi via e-mail:
pe...@hotmail.com
Ciao 

...


Ciao 
      Ciao
      Michele

Newsgroup: it.comp.lang.c
Titolo: laggere un file riga per riga

Ciao a tutti,vorrei scrivere un programma in c/c++ che legge una riga
alla volta da un file di testo
il file di testo da leggere,sarebbe quelllo prodotto dal comando: 
find / -iname *log >> temp.txt.,quindi sarebbe un file di varie frasi
,al termine di ognuna delle quali ci sarebbe un certo numero di spazi.
ogni riga la vorrei assegnare di volta in volta ad un elemento di un
array...come posso fare?...ci sono funzioni specifiche per realizzare
tutto ciň?...
Ciao,grazie,
ALberto

 wrote in message
news:3c0e307...@news.libero.it...

Funzione utilizzabile in c++:
istream& getline(char* ptr, int len, char delim = '\n');
valorizza il pointer per la lunghezza specificata finche' non trova '\n'.
E' solo un'idea (cmq assicurati che il * prt sia abbastanza ampio per contenere
tutta la tua riga di testo).
Spero di esserti stato d'aiuto.
Ciao
-- 
Posted from  [217.56.207.225] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

array...come posso fare?
Per la lettura usa fgets, per la memorizzazione delle
stringhe puoi partire da un buffer a lunghezza fissa ed
espanderlo, man mano che il numero di righe lette supera la
lunghezza fissa.  Riallochi la memoria a step predefiniti.

ok,ragazzi,proverň...
Grazie di tutto.
Newsgroup: it.comp.lang.c
Titolo: Esiste l'equivalente del "copy" Pascal?

Hi,
So che la domanda e' banale, al limite ditemi dove posso
travare le FAQ del n.g. :))
Ho una variabile "stringa" cosi' definita:
  char *crecord[90];
Questa variabile viene riempita con una riga letta da un file,
adesso avrei la necessita di "spezzarla" in piu' stringhe, in
Pascal quest'operazione e' semplice, avrei fatto qualcosa del
tipo:
var spezzata, crecord: String;
begin
  crecord := '123456 fkjaskjfdskfjdsfjds';
  spezzata := Copy(crecord, 8, 3);
end;
In questo modo spezzata diviene uguale a 'fkj' .... ma come
farlo in C per me e' un mistero :(
Esiste un'istruzione equivalente a copy in C?
-- 
Vanni Brutto
email    
asy...@nofesso.tin.it
irc nick VanniB
ICQ      18526701
Homepage 
http://www.geocities.com/SiliconValley/Lab/6806
please remove nofesso to reply.
rimuovi nofesso per rispondere.

Esiste un'istruzione equivalente a copy in C?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char * copy( const char *s, int start, int len )
{
       char * t = malloc( len + 1 ) ;
       memmove( t, s+start-1, len ) ;
       t[len] = 0 ;
       return t ;
}
int main(void)
{
  char *src = "Ciao a tutti belli e brutti...";
  puts( copy( src, 8, 11) ) ;
  return 0;
}     
Andrea Laforgia        (
andrea_...@bigfoot.com
)
----------------------------------------------------
There is nothing better for understanding a kangaroo
than seeing it jump.
----------------------------------------------------

Esiste un'istruzione equivalente a copy in C?
Una istruzione uguale non esiste, ma puoi usare (è molto simile)
memcpy(destinazione, sorgente, numero_di_bytes_da_copiare) che copia dei
dati da una porzione di memoria a un'altra. Il tuo esempio, in C equivale a:
char *crecord = "123456 fkjaskjfdskfjdsfjds";
char spezzata[16];
memcpy(spezzata, &crecord[7], 3);
Ciao, Giuseppe

memcpy(spezzata, &crecord[7], 3);
No, attenzione, bisogna introdurre lo '\0' finale...


char (se vogliamo : di 90 stringhe)...
[snip]
grazie mille (anzi mezzo euro) per l'aiuto. :-D
Per la precisazione se noti avevo messo stringa tra virgolette...
...indovina perche' ? ;)))
Cmq ancora grazie !


No, attenzione, bisogna introdurre lo '\0' finale...
Vero, l'ho scordato. Il codice funzionante sarebbe questo:
char *crecord = "123456 fkjaskjfdskfjdsfjds";
char spezzata[16];
memcpy(spezzata, &crecord[7], 3);
spezzata[3] = 0;
Ciao, Giuseppe

 rimuovi nofesso per rispondere.
-- 
Francesco P. Lovergine  f.lovergine AT 
iesi.ba.cnr.it
Newsgroup: it.comp.lang.c
Titolo: Elenco comandi C

Salve ,
sono uno studente di ingegneria a Cremona e stň preparando un esame di
informatica ...
volevo sapere se qualcuno ha un elenco dei comandi principali del C, con
magari una breve spiegazione su cosa servono ...
oppure se qualcuno sa consigliarmi qualche testo che li riassuma brevemente
...
infatti i libri che ho non li riassumono per niente, e in piů molti sono
descritti solo teorcamente e non dal punto di vista pratico ...
Grazie a chi volesse darmi una mano
Ciao
Pippo


Kernighan and Ritchie  'Il linguaggio C'
Piu' sintetico ed esplicativo di quello non si puo'!
Marco Colandrea

 Pippo
Dunque, se usi il win/dos puoi usare il djgpp con rhide e guardare
l'help in linea, davvero ben fatto, esempi compresi; se usi linux puoi
digitare 'man libc "function index"' e avrai l'elenco delle funzioni
della libc; sempre in linux puoi usare xwpe e il relativo help (come
rhide del dos); per il libro cerca il K&R2
Ciao, Luca.
-- 
*******************************************************
       "Dio non e' morto.
        E' vivo e sta lavorando
        a un progetto
        meno ambizioso"
				    graffito anonimo
  Reply to 
bia...@maganet.net
*******************************************************

...


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

Quale libro mi consigliate sul C?
A me hanno detto "linguaggio C seconda edizione" ... chiedo conferme
Grazie
--
-----------------------------------------------------------------
I'm Mr. Bad Guy,
Yes I'm everybody's Mr. Bad Guy.
Can't you see I'm Mr. Mercury
Oh, spread your wings and fly away with me....
(Freddie Mercury: 5/9/1946 - 24/11/1991)

E' un ottimo libro, il libro ufficiale di questo NG! Ma se sei completamente
a digiuno di programmazione (qualsiasi linguaggio) forse puo' risultare un
po' difficile.
Alex


God, I ask for patience -- and I want it right now!

Newsgroup: it.comp.lang.c
Titolo: [OT] Inviare e-mail

Il punto e' che non ho mai realizzato programmi legati ad Internet.
Utilizza C++ Builder.
Contiene dei componenti VCL per la gestione delle connessioni via SMTP
e POP.

Avete qualche suggerimento?
se devi programmare sotto linux ti consiglio di cercare qualche
oggetto gia' pronto, ne avevo trovati di free che facevano le piu'
usuali operazioni internet (manda e-mail, telnet...)
Altrimenti devi programmarti tu la connessione via socket al server di
invio mail...
bye
Newsgroup: it.comp.lang.c
Titolo: Aiuto scanf

char menu()
{
  // in caso si errore da -1
  char car;
  car='2';
  printf("\n Scegli l'operazione da effettuare\n");
  printf("\n A Leggi a \n B Leggi b \n C Stampa \n D Somma \n E Differenza
\n F Prodotto \n G Divisione \n H Semplifica");
  printf("\n\n scegli il num");
  scanf("%c",&car);
  if (!(car<='H' && car>='A')) car=-1;
  return(car);
}
E' una semplice funzione che restituisce un carattere o -1 in caso di
errore.
Ma..........
Quando scrivo
void main()
{
    do
       {
          c=Menu();
        }
      while(c==-1);
...................
Il resto non conta.
Se Menu da -1 il ciclo viene ripetuto 2 volte la prima volta infatti scanf
non entra in funzione .
Pensavo fosse un problema di compilatore ma l'errore avviene con 2
compilatori diversi.
Quale puo essere il problema come devo risolverlo?
Ciao e grazie in anticipo.

 wrote in message
85g0gd$pim$1...@pegasus.tiscalinet.it...


non entra in funzione .
Forse volevi fare
       while (c != -1);
?
Saluti,
    Mardy

Newsgroup: it.comp.lang.c
Titolo: problema con sprintf()

ciao a tutti
lo scopo del programmino scritto e qui riportato era semplicemente prendere
un valore intero e trasformarlo in una stringa ( una sorta di itoa() ) A
tale scopo intendevo usare il comando sprintf().
ora, pero' mi sono accadute cose che sembrano violare alcune regole:
quando introduco il valore intero l'output del programma e'  il
corrispondente carattere ascii. Inoltre se in sprintf scrivo :
sprintf(ch,"%s",&var) , come da regola il prg non funziona; infine se
l'array ch viene ridotto a sole 5 componenti ho un segmentation fault
#include "stdio.h"
#include "stdlib.h"
int main(){
char ch[10];  /* PERCHE' SE RIDUCO A 5 VADO IN SEGM. FAULT ? */
int var;
scanf("%d",&var);
sprintf(ch,"%s",var);    /* PERCHE' SE SCRIVO &var  NON FUNZIONA ?? */
printf("il valore di ch e'  ---->  %s",ch);
return 0;}
qualcuno puo' indicarmi la soluzione, o almeno il metodo per cercarla?
uso il gcc del linux redhat 6.0
grazie 
lorenzo
_______________________________________________________
Excite Inbox: la tua email gratuita e personalizzabile
http://inbox.excite.it
Il Mio Excite
http://www.excite.it
A.A.A. Relazioni: trovare l'amore non è mai stato più facile
http://aaa.excite.it/relazioni
-- 
Posted from 
gigi.excite.com
 [199.172.152.110] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

A.A.A. Relazioni: trovare l'amore non =E8 mai stato pi=F9 facile



Dato che var è un intero devi usare 
sprintf(ch,"%d", var);
HTH
Newsgroup: it.comp.lang.c
Titolo: C99

Scusate...
Sapete dirmi se il viual c++ 6.0 e' compatibile con lo standard c99 ed
eventualmente quale service pack bisogna installare per usarlo?
Stefano


Service Pack "Miracle".
Scusate il flame inutile e probabilmente portatore di idee sbagliate, 
dato che non conosco la compliance del Visual C++ 6, ma non ho resistito ;D
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */

 -- 
 Questo vuol dire che la compatibilita' col c99 del visual c++ e' a partire
dalla versione .net?

dalla versione .net?
no,
vuol dire che VC non è mai stato compliant con ANSI C e presumo non lo
sarà mai neppure con il C99

 sarà mai neppure con il C99
Quello che dici e' vero....
Il Visual C++ .NET 2003 e' un ottimo compilatore per il C++, uno dei piu'
aderenti allo standard del momento.
Settandolo su C-Code (/TC) invece di C++-Code (/TP) si puo' compilare codice
in "C", ma..... non e' molto aderente al C99 ;-)
Credo che abbiano preso un'altra strada.... quella di concentrarsi sul C++
pur permettendo di compilare vecchi programmi in C. Poi alcune cose (ad
esempio long long) sono state introdotte.....
Tommy


Accidempolina...
A me serviva un compilatore C (compatibile con lo standard c99: il vc++ 6.0
non accetta inline, e le altre cose introdotte per il c) sotto win32, con un
ambiente integrato. Al momento uso il dev c++ , credo che rimarro' ad
usarlo...
Grazie
Stefano

 non accetta inline, e le altre cose introdotte per il c) sotto win32,
Beh, aspettarsi che il VC++6 sia aderente al C99 e' assurdo, visto che e'
uscito 3 anni prima dello standard!
Ad ogni modo microsoft non sembra troppo interessata al C99 e questo si
riflette nel .NET 2002 e 2003.
Tommy

 ha scritto nel messaggio
news:bsh7vr$8l7$1...@sparta.btinternet.com...

Speravo che avessero fatto delle correzioni con i vari service pack.
Pazienza.
Ciao e grazie
Stefano
Newsgroup: it.comp.lang.c
Titolo: Problema urgente!

Ciao a tutti.
Ho uno strano problema con il Dev-Cpp. Sto facendo un progetto, ma finora ho
solo fatto un lavoro di copia&incolla da un sorgente (funzionante) per
dividerlo in piu' file, rispettivamente: main.h, util.h e main.c. Non sono
altro che pezzi del programma originale! Quando compilo mi da' una serie di
errori su tre strutture che ho definito: (ho aggiunto il numero di riga)
1 typedef struct _elem {
2 char nome[30];
3 char cognome[30];
4 char p;
5 int punt;
6 } elem;
7 typedef struct _el {
8 char nome[30];
9 char cognome[30];
10 int punt;
11 } el;
12 typedef struct _tree {
13 el dati;
14 struct _tree *left;
15 struct _tree *right;
16 } tree;
17 tree *tg=NULL;
Questi sono gli errori:
redefinition of `struct _elem'  (riga 1)
previous definition here         (riga 6)
gli stessi errori anche, rispettivamente per riga 7-11, 12-16 ed entrambi
per la riga 17!
Che problema puo' essere?
--
----------------------------------------------------------------------------
There are 10 kinds of people in the world:
those who understand binary, and those who don't
----------------------------------------------------------------------------

 Che problema puo' essere?
Prova a togliere "_elem" dalla definizione di struttura, tanto per come
l'hai definita non serve a nulla:
typedef struct {
    ...
} elem;
Ciao

 Che problema puo' essere?
Le dichiarazioni sono corrette (a  parte il fatto che gli identificativi
che cominciano  per underscore  sono riservati  per l'uso  interno della
libreria standard).
Non e` che ti e` sfuggito un  punto e virgola in qualche altro header ed
il compilatore va in crisi?
Posta qualche dettaglio in piu` (in particolare suddivisione dei file ed
ordine degli #include).
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Mi piace avere amici rispettabili;
Mi piace essere il peggiore della compagnia.

Ecco dov'era l'errore: avevo incluso due headers nel main.cpp e in uno di
questi vi era gia' incluso l'altro...

 
quando fai un .h usa questo scheletro:
#ifndef NOMEFILE_H_CIAO_BELLO
#define NOMEFILE_H_CIAO_BELLO
/* Il tuo codice */
#endif
Questo ti evita di avere problemi in inclusioni "cicliche". OK?
Ciao
Luigi

 #endif
Non ho capito il senso di questo codice... anche perche' non ho mai usato
queste direttive al preprocessore. Potresti darmi spiegazioni dettagliate?
Grazie!

 wrote in message
news:ombNa.146109$
lK4.4...@twister1.libero.it

Se non e' definito il simbolo NOMEFILE_H_CIAO_BELLO, viene definito
e il preprocessore continua con la lettura del file (e legge la
definizione delle strutture).
Se il simbolo e' gia' definito (ovvero il file e' gia' stato letto), il
preprosessore salta a #endif e non ci sono doppie definizioni.
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c
Titolo: Un aiuto per favore

Salve a tutti, 
mi sono scaricato il djgpp ma non riesco a farlo funzionare: se lancio
il file "gcc" o "gpp" ottengo una schermata con scritto "no input
files". Cosa devo fare per poter usare il compilatore? Qualcuno
potrebbe essere cosi' gentile da aiutarmi?
Grazie mille

 files". Cosa devo fare per poter usare il compilatore?
Devi per lo meno specificare sulla linea di comando il nome del file
sorgente che vuoi compilare.
EMG

 Grazie mille
Dargli un input file, come ti dice il messaggio di errore, ossia
scrivi un sorgente c o c++ lo compili dando sulla riga di comando "gcc
nome_tuo_sorgente.c". Se tutto va come dovrebbe ottieni l'eseguibile
del tuo programma.
--
 Ciao, Luca.
 Reply to 
luca....@tiscalinet.it

 Mailgate.ORG is maintained online by Dario Centofanti
gcc nomefile.c -o nomefile_eseguibile
--
Posted from 
ro...@dante2.bdp.it
 [193.43.17.10]
via Mailgate.ORG Server - 
http://www.mailgate.org

Grazie mille
Questo messaggio è un po' vecchiotto, ma io mi sono scaricato ieri il djgpp
e sono "fresco di studi".
Per l'uso del gpp hanno già risposto, ma se vuoi puoi scaricare il rhide per
djgpp (forse ce l'hai già, prova a digitare al prompt 'rhide'...), che
implementa un'interfaccia piuttosto comoda (almeno per chi non ha mai
compilato in ambiente grafico:-)).
Ciao,
Zeppe
Newsgroup: it.comp.lang.c
Titolo: Disabilitare gli interrupts di sistema

Ciao a tutti, il mio problema è il seguente:
dovrei eseguire una routine ad un intervallo di tempo molto corto che
comunque può essere variabile (ad esempio ogni 500 microsecondi che possono
diventare 600, 550 , ... tra un esecuzione ed un'altra).
La cosa però fondamentale è che durante l'esecuzione della mia routine non
intervenga il sistema operativo (Win9x o NT) , quello che vorrei fare quindi
è disabilitare tutti gli interrupt del sistema operativo all'inizio della
mia routine e riabilitarli alla fine (chiaramente la mia routine dovrà
durare meno dei 500 microsecondi).
Riassumendo:
    1- Creare un interrupt a priorità elevata per la mia routine
    2- Disabilitare/Riabilitare gli interrupt di sistema
Datemi qualsiasi consiglio (anche libri/siti che possano aiutarmi) e ve ne
sarò eternamente grato
Ciao a tutti
Nicola


La soluzione del tuo problema è assolutamente dipendente
dall'architettura dell'hardware e dal sistema operativo. Assumo che si
tratti di un comune Intel-based system.
AFAIK non trovo una strada per generare un interrupt a circa 2000 Hz
sfruttando interrupt già esistenti in un sistema win-intel.
Penso pertanto che la soluzione sia quella di programmare il PIC
direttamente.
Questo si può fare in C, naturalmente :) attraverso outb(), che a dire
il vero è praticamente assembly. E infatti l'altra cosa che devi fare, e
cioè disabllit. gli interrupt, normalmente si ottiene con dell'assembly
inlined nel codice C.
Non saprei darti un unico URL per reperire tutte le info, anche perchè
si tratta forse più di know-how che di info ;) ad ogni modo devi
ricercare per drivers, interrupt handler routines, PIC. Di assembly ce
n'è pochissimo, push/pop cli/sti.
Attenzione che al di là del come_si_fa, il vero problema è che tutto ciò
è molto critico per sua natura in ogni ambiente e particolarmente in uno
multitasking. Il problema è il timing della finestra in cui il tuo
sistema è senza interrupts. Si rischia di imballare tutto.
ciao
Newsgroup: it.comp.lang.c
Titolo: Libro sul C. Quale ?

Ultimamente sto impazzendo col C.
Voglio imparare a programmare in C non avendo mai imparato altri
linguaggi.
So usare windows e linux... Ho comprato il K&R ma per un neofita come
me è troppo avanzato.
Ho letto i messaggi nel newsgroup e per i principianti è consigliato
un libro come Apogeo, "Programmare in C", Deitel&Deitel...
QUALE TRA QUESTI ??? CE NE SONO ALTRI MIGLIORI ???

QUALE TRA QUESTI ??? CE NE SONO ALTRI MIGLIORI ???
io ho appreso il C con il K&R e non l'ho trovato difficile...ma non
partivo da 0...se parti da 0 meglio il D&D (cosi dicono)
--
Rhymes
rhy...@myself.com
" ride or die "

 wrote in message
ff6aguoi2kt01ad8n...@4ax.com...


 wrote in message
51343865.02061...@posting.google.com...


 wrote in message
51343865.02061...@posting.google.com...


 wrote in message
ae8ee6$80n$1...@newsreader.mailgate.org...


Newsgroup: it.comp.lang.c
Titolo: Allocazione dinamica di un vettore di caratteri

Perchè la seguente procedura non funziona?
A runTime si blocca faccendo emettere a windows XP il messaggio "si è
verificato un errore, l'applicazione verrà chiusa ecc......"
char * codifica (int i, char *str)
{ int cont;
  char *s;
  cont=0;
  do
   {
    s[cont]=(char *)malloc(sizeof(char));
    s[cont]=str[cont]+i;
    cont++;
   }
  while(str[cont]!='\0');
  return (s);
}

     s[cont]=(char *)malloc(sizeof(char));
...
s[cont] equivale a     *(s+cont)   (e' un' indirezione NON e' un 
puntatore!) quindi non ha molto senso assegnare a s[cont] il valore di 
ritorno di malloc. Forse volevi lavorare con un vettore di puntatori?
Giorgio
PS e' sempre preferibile non fare il cast della malloc.

 }
Ecco come la scriverei io:
char *codifica(int i,const  char *str)
{
        char *s;
        int len=strlen(str); /*Se str è terminata*/
        int a=0;
        if(!(s=(char*)malloc(len+1)))return NULL;
        strcpy(s, str);
        for(len--;len>=0; len--)s[len]+=i;
        return s;
}
Spero d'esser stato utile
-- 
Per l'e-mail rimuovere le maiuscole e gli underscore