mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: Eseguire file da codice.

Devo fare un programma che mi lanci tre eseguibili in sequenza
aspettando di lanciare il secondo fintanto che il primo non abbia finito
il suo lavoro e cosě' anche per il terzo.
Sono nuovo (molto nuovo) del C e della programmazione in generale.
Che comandi posso usare e dove trovo materiale da leggere sulla
questione?
Ogni aiuto č ben accetto!!
Grazie.
Manuele
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 questione?
--------------------------------
Inviato via 
http://usenet.libero.it

Newsgroup: it.comp.lang.c
Titolo: (extern + struct) errore in compilazione: perche?

ciao
 ragazzi ho il seguente problema:
 ho due file sorgenti, nel primo definisco una struct e alloco RAM
  struct  miaStruct{
   unsigned char pippo;
   int pluto
  } Oggetto;
nel secondo file sorgente vorrei "vedere" Oggetto, per cui scrivo
 extern miaStruct Oggetto;
Il Compilatore mi dice "unknow struct size"
Perche? Cosa devo scrivere affinche' possa accedere ad Oggetto?
ringrazio in anticipo
Enrico

Perche? Cosa devo scrivere affinche' possa accedere ad Oggetto
extern struct miaStruct Oggetto ;
--
Andrea Laforgia
"Nessun linguaggio di programmazione e' perfetto"
                              - Bjarne Stroustrup

Newsgroup: it.comp.lang.c
Titolo: Ordinare un array di stringhe

Salve a tutti,
avrei bisogno di sapere come fare per ordinare in ordine alfabetico un array
di stringhe.
Grazie fin da adesso per l'aiuto
Ciao
Brunix


bisognerebbe anche vedere come e' memorizzato, se ad esempio
le stringhe sono lunghe tutte uguali oppure no.
La cosa piu' semplice forse e' se hai un vettore
di puntatori a stringhe, perche' in questo modo
devi solo scambiare i puntatori (che sono tutti lunghi
uguali) e non le stringhe.
Quindi potresti avere una cosa cosi':
char *V[10];
un vettore di 10 puntatori a carattere.
supponiamo che sia stato popolato in qualche modo,
tipo
V[0]=malloc(5);
strcpy(V[0],"zero");
V[1]=malloc(7);
strcpy(V[1],"tegame");
etc.etc.
allora puoi usare facilmente la funzione qsort
dalla stdlib.h
devi definirti una funzione che confronta i puntatori,
confrontando le stringhe puntate,
stringhe (vedi il man di qsort)
usando strcmp (da string.h)
int MyComp(const void *a, const void *b)
{
   return strcmp(*((char **)a),*((char **)b));
}
e poi puoi invocare la qsort (assumendo che tu abbia 10
stringhe)
qsort(V,10,sizeof(char *),MyComp);
ed e' finita.
La stessa cosa vale
se V era stato definito come
char **V; e allocato appropriatamente.
ciao,
g.



In modo simile all'ordinamento numerico.
Utilizza la funzione strcmp definita in string.h per controllare quale
tra due stringhe è la più piccola, in luogo dell'operatore '<'.
Newsgroup: it.comp.lang.c
Titolo: Problema con le stringhe

Ciao,il mio problema č questo.
Ho una stringa contenente un path.
Voglio risalire di un livello per cui scorro la stringa dalla fine fino ad
arrivare al carattere '/'.
A questo punto inserisco il carattere di fine stringa '/0'.
Ma quando faccio la printf di questa stringa non stampa la stringa piů corta
ma la stessa stringa di prima con un altro carattere al posto del '/' . Come
faccio per ottenere la stringa piů corta?
Grazie a tutti.
Marco

A questo punto inserisco il carattere di fine stringa '/0'.
Le sequenze di escape, in C, vengono introdotte da '\', non da
'/'.
'\0' e' il carattere giusto.
--
Andrea Laforgia - walkietalkie(at)
libero.it
#exclude <windows.h>

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

Newsgroup: it.comp.lang.c
Titolo: Array dinamico di strutture

salve a tutti.
se io ho questa struttura:
struct list{
  int x;
  int y;
  int i;
  struct list *next;
};
e mi alloco in array con 10 elementi di tipo struct list:
struct list *g=calloc(10,sizeof(struct list));
come faccio poi ad accedere a questi elementi un alla volta..?..:-(
la prima cosa che mi viene in mente e far questo:
g[0]->x=1;
g[1]->x=2;
g[1]->y=3;   /*ecc ecc*/
ma evidente mente è sbagliato perchè mi dà errore in compilazione.
qualcuno mi aiuta ?
thx

scusatemi
ho capito da me :-)
che è la cosa migliore

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

Mi spiegate perchè non mi funziona?
char *oper;
oper = (char *) malloc (sizeof(char));
.........
if(*oper != 'STOP') {
open_read_file(temp->next,ftell(req_file),req_file);
}
Perchè *oper mi da solo la prima lettera? e perchè se scrivo solo oper
mi da un errore?
grazie e ciao

 if(*oper != 'STOP') {
L'errore è proprio qui! *oper è il contenuto della prima casella dell'array,
quindi 'S'. La stringa in C non è tipizzata, non puoi eseguire su di essa
operazioni elementari (assegnazione, confronto...) come uno scalare (es.:
int). Tali operazioni devono passare per forza attraverso chiamate a
funzione, quali (in questo caso strcmp(char * , char * )). E poi per
identificare un letterale di tipo stringa devi usare i doppi apici, e non i
singoli.
Puoi correggere il codice così
if (strcmp(oper, "STOP")) {
....


 if(*oper != 'STOP') {
Non si può fare. O confronti *oper con un carattere solo oppure
confronti oper con una stringa delimitata con le doppie virgolette
utilizzando l'apposita funzione strcmp().
EMG

 if(*oper != 'STOP') {
se consideri STOP una stringa, allora devi scrivere "STOP" e non 'STOP';
gli apici singoli si usano per i caratteri, i duppi apici per le
stringhe. Per confrontare le stringhe devi usare funzioni come strcmp.
-- 
 Ciao, Luca.
 Reply to 
luca....@tiscalinet.it
Newsgroup: it.comp.lang.c
Titolo: Aiuto

Sto usando il programma che compila con: gcc nomefile.c  che crea
l'eseguibile a.out. Dovrei scrivere un programma che mi legga un
file di testo dall' hard disc (ad esempio 'textfile') dando il seguente
comando:
a.out textfile. Il programma l' ho gia' scritto ma non so' come fargli
leggere
un file gia' esistente e come farlo eseguire digitando a.out  textfile
nella riga di comando.
Ringrazio chiunque possa aiutarmi.

 nella riga di comando.
Prova con a.out < textfile.
EMG

 di comando.
  Per prima cosa, usa l'opzione di compilazione "-o", in modo da poter
nominare gli eseguibili come ti pare. Per i sistemi operativi UNIX-like
la sintassi e`:
	$ gcc -o mio_eseguibile mio_sorgente.c [altro]
  Per quanto riguarda il tuo problema, ci sono due alternative:
	1. I parametri della linea di comando sono definiti 
	   nel vettore di stringhe "argv" che, insieme al contatore 
	   di stringhe contenute in detto vettore ("argc"), e` 
	   passato come parametro alla funzione main (vedi esempio).
	2. Puoi utilizzare il tuo programma come end-point di
	   una pipe: in questo caso il file sara` rediretto 
	   sullo standard input del tuo programma e non 
	   sara` necessario aprire file (modo standard per i filtri).
<CODE>
	#include <stdio.h>
	int main(int argc,char **argv)
	{
		FILE *in;
		if(argc<1) {
			printf("%s: Usage is... \n",*argv);
			exit(1);
		}
 
		if((in=open(*(argv+1),"r"))==NULL) {
			fprintf(stderr,"%s: Unable to open %s\n",
				*argv,*(argv+1));
			perror(*argv);
			exit(2);
		}
		/* your code */
		close(in);
		return 0;
	}
</CODE>
	Alla prossima,
		Marco

                 Marco
         Ciao.

          Ciao.
Marco Guidi
 

 subito perche' la memoria non poteva essere letta.
  C'era un refuso: la funzione "open", in realta`, era "fopen". Questo,
se non altro, dovrebbe eliminare i warning...
	Alla prossima,
		Marco

gu...@sssup.it
 wrote:
[ snip ]
gsi>             #include <stdio.h>
gsi>             int main(void) {
gsi>                 char c;
                     ^^^^^^
gsi>                 while ((c = getchar()) != EOF) {
                             ^^^^^^^^^^^^^^^^^^^^^
Guarda che 'c' va dichiarato come 'int'.
Ciao ciao,
Andrea
gsi> 
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)
Newsgroup: it.comp.lang.c
Titolo: STO CERCANDO UN COMPILER VERAMENTE BUONO

HO CERCATO UN PO' IN GIRO MA, DATO CHE NON ME NE INTENDO ANCORA MOLTO
DI C, LO STO STUDIANDO DA POCO, QUINDI VOLEVO DOMANDARE SE C'ERA
QUALCUNO CHE POTEVA SPEDIRMENE UNO O DIRMI DOVE POSSO TROVARLO.
P.S. POSSIBILMENTE UN PROGRAMMA CHE CONTENGA GIA' ANCHE IL LINKER
OLTRE AL COMPILER.
P.P.S. IL MIO ICQ E' 16598510
hi...@bigfoot.com

...


 
DJGPP: 
http://www.delorie.com/djgpp
- GNU C/C++ per MS-DOS Protected Mode 32 bits - ottimo per appl. DOS
- gira sotto Win95/dosbox o sotto dos con dos extender
- IDE per DOS
- estensioni per Win95/NT (difficili da configurare)
- utility GNU (bison, flex, text util, ...)
- minimo ~15M (installato)
- librerie free di tutti i tipi, in particolare libreria per i giochi
"Allegro"
- doc. completa on-line (in formato GNU info)
- newsgroup dedicato (comp.os.msdos.djgpp)
LCC-Win32: 
http://www.cs.virginia.edu/~lcc-win32/
- Nativo per Win32
- editor di risorse
- ~8M installato
Newsgroup: it.comp.lang.c
Titolo: getl+macro

Recentemente ho postato il seguente codice in un NG sul C e qualcuno
mi ha risposto che funziona solo per caso, soprattutto nel caso che
realloc non falla e si libera la locazione puntata da s (in getl) due
volte (una in getl e una sul main); io invece penso che s si può (come
non si può dipende se realloc riesce a continuare la lista nella
stessa posizione di memoria) liberare in getl
Ma poi nel main quando scrivo free(s) in realtà libero il realloc (la
nuova memoria riservata per s)  e non s.
Non ho capito proprio tale punto (se è giusto oppure se è sbagliato
cosa sbaglio)
#include <stdio.h>
#include <stdlib.h>
#define F for  
#define C case
#define S switch 
#define E else 
#define R return 
#define P printf
#define M malloc
#define L free
#define W while
#define RE realloc
#define B break
char* getline(FILE* file, char* s, long step, int* len, int* eof)
{int c, i;
 char *k;
 if(step<7) step=7;
 *eof=0; *len=0;
 F(i=0;;++i)
      {if( i%step==0 && (k=RE(s, i+step+1))==NULL)
// _____________________^^^^^^^^
                                           R NULL;
       if((c=getc(file))==EOF) {*eof=1;  B;}
       k[i]=(char) c;
       if(c=='\n') B;
      }
 k[i]= '\0';
 *len=i;
 R k;
}
int main()
{int length, eof, step=253;
 char *s=M(step+1), *h;
 s[0]='r'; s[1]='\0';
 h=getline(stdin, s, step, &length, &eof);
 if(h==NULL) 
      {P("s==%s (size: %d)\n", s, length);
       L(s);
       P("Action failed.\n");
       R -1;
      }
 P("s=%s h=%s (size: %d)\n", s, h, length);
 s=h;
 L(s);
//^^^
 P("s=%s \n", s);
 R 0;
}


-- 
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."

 mi ha risposto che funziona solo per caso, soprattutto nel caso che
Una piccola domanda: quel codice fa parte del concorso "provate a capire
cosa ho fatto"?
Comunque, ad occhio e croce, prova a riguardare l'utilizzo di free e di
realloc.
Ciao.

stati usati da altri.
secondo me getline dovrebbe essere giusta ma non ci giurerei
Grazie e
Buona Pasqua a tutti
Newsgroup: it.comp.lang.c
Titolo: Un quiz che era ieri nei mio esame.

Tutti i processi Linux scritti in C possono essere rientranti?
--
________________________________
Togliete NoSpaM per rispondermi
bye Brain

 wrote in message
news:85o9qr$9ee$2...@nslave2.tin.it...


> Tutti i processi Linux scritti in C possono essere rientranti?
Che io sappia, a meno che tu non combini qualche pasticcio, sono rientranti,
dato che è un SO che protegge abbastanza bene la memoria dei suoi processi
figli. In pratica, il codice è condiviso, mentre ogni istanza di un processo
ha la sua memoria privata, per cui le possibilità di interazione sono
piuttosto pochine.
Però è anche vero che si può fare di tutto in C, per cui si potrà
sicuramente impedire la rientranza. Di certo POSSONO essere rientranti.
--
Alessandro Monti

 piuttosto pochine.
Basta usare per memorizzare dati un file temporaneo con il nome costante
e non basato sul pid, ma gia' questo e' un esempio un po' limite.

Newsgroup: it.comp.lang.c
Titolo: per favore...un buon manuale di C

Gentili Chatters chiedo aiuto a voi attraverso la news, sono un giovane
programmatore, o meglio un aspirante a tale ,che essendosi accostato alla
materia trova grande difficoltà...
Vi chiedo se cortesemente potreste consigliarmi un buon manuale di C,
soprattutto facile
e comprensibile
 Vi ringrazio sin da ora
                                                        Massimo

 ha scritto nel messaggio
news:9f3l1r$rvo$1...@serv1.albacom.net...


 wrote in message
9f3nju$72e$1...@nreadA.inwind.it...


Ti consiglio :
Ira Pohl  - Al Kelley
C Didattica e programmazione
Addison Wesley
ciao

>soprattutto facile e comprensibile.
Insomma, sono sicuro che sia il manuale di riferimento del C. Ma bisogna
ammettere che e' un ottimo tutorial solo per chi non e' a digiuno di
programmazione. Insomma non e' un libro per iniziare da 0 secondo me !!
Alex

 Gentili Chatters chiedo aiuto a voi attraverso la news, sono un giovane...
Solo una precisazione: non mi ritengo un chatter !!!
Alex

 quando e' palese che non e' il libro adatto
Condivido
-- 
Nick Belane

 Vi ringrazio sin da ora
"Introduzione al C" Bellini, Guidi. McGraw-Hill Italia (Workbooks)
Augusto Pucci ( 
http://www.prospektiva.it/webmaster/
 )
Webmaster di Prospektiva On-line
http://www.prospektiva.it
Webmaster di SIPO Toscana
http://sipotoscana.supereva.it

 ha scritto nel messaggio
news:dBdR6.3025$i71.1...@news.infostrada.it...


 programmazione. Insomma non e' un libro per iniziare da 0 secondo me !!
E' il C che non è adatto per iniziare da zero, non il libro.
EMG

Programmare in C
Byron S. Gottfried
Collana Schaum, Mc Graw Hill, 52'000 lire.
L'ho divorato talmente mi piace. E' pieno di esercizi ed esempi.
ciao
Christian
Newsgroup: it.comp.lang.c
Titolo: Problemi da principiante

Ciao, è da poco che ho iniziato ad interessarmi del C, sto usando lcc
e ho questi problemi:
- se faccio partire un eseguibile da dos funziona
- se clicco due volte sull'icona la finestra del dos si apre e chiude
velocemente
- se faccio partire l'eseguibile dal programma funziona, ma termina
con alcuni errori: premere un tasto per continuare e file batch
mancante.
Inoltre volevo chidervi un'altra cosa: perchè il seguente sorgente,
una volta compilato, dia in dos errore di sintassi e negli altri casi
gli effetti già visti sopra.
#include <stdio.h>
#include <stdlib.h>
double a;
main(){
	printf("Inserisci un numero");
	scanf("%lf", &a);
	if (a<0)
		printf("%lf", a,"e' un numero negativo");
	else
		printf("%lf", a,"e' un numero positivo");
return (0);
}
Grazie
Ciao
Peppe
--------------------------------------------------------
             Giuseppe Di Rienzo ICQ: #25025139
   E-mail: 
gaed...@ciaoweb.it
 - 
scou...@hotmail.com
                   Scoutlink (nick): Pepz  
         Campobasso 3° WWW: Scouting on the net:
 
http://utenti.tripod.it/scoutismo
       Imparate dal passato, vivete il presente, 
                  sperate per il futuro...     
-------------------------------------------------------- 


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

         printf("%lf %s", a,"e' un numero positivo\n\n");
o ancora meglio 
			printf ("%lf e' un numero negativo\n\n", a);


 devi indicare nella printf %s per la stampa della stringa ...
Oppure, più semplicemente, scrivere
printf("%lf e' un numero negativo\n\n", a);
EMG
Newsgroup: it.comp.lang.c
Titolo: esempio poco comprensibile

ciao, ho visto questo codice di esempio sulla rete per verificare la presenza
di tab,blank ecc...
francamente quando ho visto questo codice ho pensato:non puo' dichiarare un
vettore (buffer) e poi trattarlo come se fosse un char pointer, provo a
compilarlo (ho l'ms visual c++ 6.0)e sicuramente mi da un errore...
cosi' non e'
#include <stdio.h>
#include <string.h>
#define  MAXHEAP     4096
#define  MAXBUF      2048
#define  NULLCHARS   " \t\n\r"
extern unsigned _heaplen = MAXHEAP;
int main(void)
{
    char buffer[MAXBUF];
    *buffer = NULL;
    gets(buffer);
    if(!strtok(buffer,NULLCHARS))
        return(1);                         // stringa nulla: errorlevel = 1
    return(0);                             // stringa non nulla: errorlevel = 0
}
il compilatore mi ha dato solo un warning
d:\prova\prova.c(15) : warning C4047: '=' : 'char ' differs in levels of
indirection from 'void *'
e' normale???
ciao e grazie in anticipo!!!
-- 
Posted from  [213.82.129.50] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 vettore (buffer) e poi trattarlo come se fosse un char pointer
Il nome di un array decade al puntatore al primo elemento. Quindi
l'assegnazione:
*buffer = NULL;
equivale ad annullare la stringa (cioè se vengono effettuate operazioni
di lettura di essa, questa risulterà essere nulla).
Per il warning, prova a castare il NULL:
*buffer = (char) NULL;
Ciao,
Cecco

     *buffer = NULL;
equivalente a:
buffer[0] = NULL;
quindi abbastanza legale...
per assicurare che un string sia vuoto si usa di solito
buffer[0]=0;

indirection from 'void *'
Dipende dal fatto che, probabilmente, con il tuo
compilatore, NULL e' definito come:
#define NULL ((void*)0)
e quindi c'e' un'incompatibilita' tra il tipo char e il tipo
void*.
Questa assegnazione non e' del tutto corretta, benche'
produca il risultato corretto.
L'assegnazione giusta e' :
*buffer = '\0';
oppure 
*buffer = 0 ;
oppure, in fase di dichiarazione :
char buffer[MAXLEN] = {0} ;
che pero' annulla tutti i caratteri di buffer.
--
Andrea Laforgia - walkietalkie(at)
libero.it
http://www.geocities.com/AndreaLaforgia

quindi abbastanza legale...
Ma poco logico.
NULL e' studiato per essere utilizzato con i puntatori.
L'assegnazione logicamente corretta e':
buffer[0] = '\0' ;
oppure, come giustamente riporti :
buffer[0] = 0 ;


buffer[0]=0;
   L'assegnazione di NULL per terminare la stringa e` teoricamente non
portabile. Per quanto ne so io, una stringa in C e` sempre terminata
da zero, mentre non e` garantito che NULL sia numericamente
equivalente a zero.
-- 
Totuccio.

 
http://www.geocities.com/AndreaLaforgia


  char buffer[MAXLEN] = {'\0'};
E' uguale.
'\0' e 0 sono la stessa cosa.
--

Newsgroup: it.comp.lang.c
Titolo: Posizione asterischi come puntatori

Non capisco perchè si utilizzi egualmente
int*   ciao
ed
int   *ciao
cambia qualcosa?
Queste libertà nel linguaggio confondono il principiante quale sono io!
Sigh... magari esiste anche una differenza.. ? magari una forma è scorretta 
o addirittura "ERRATA".. ? Bho....
Se ho detto vaccate correggetemi senza ostilità ciao:)
__________________________
Se la so, rispondo sempre (quasi) 

 o addirittura "ERRATA".. ? Bho....
Errata no, e` una questione di gusti. Tuttavia io preferisco la seconda
forma. Usando la prima, a colpo d'occhio, potrebbe sembrare che:
int* a, b;
sia a che b siano dei puntatori ad int. Io preferisco scrivere:
int *a, b;
dove e` chiaro dal punto di vista grafico che il puntatore (asterisco)
e` solo la prima variabile.
In realta`, poi, se i tipi sono differenti non dichiaro mai le variabili
sulla stessa riga, quindi scriverei:
int *a;
int b;
E a questo punto la posizione dell'asterisco diventa abbastanza
irrilevante.
Luca
-- 
Home: 
http://kronoz.cjb.net
"Ricorda sempre che sei unico, esattamente come tutti gli altri".

 cambia qualcosa?
no, anzi, va bene pure int*ciao (che poi sia brutta da vedere, e' ovvio)
-- 
Capacita'. Volonta'. Occasione.
Cio' che serve per ottenere quel che si desidera.

 wrote:

Le forme
  int* ciao;
  int *ciao;
  int * ciao;
  int*ciao:
  int
  *
  ciao;
 
sono uguali e corrette in C e in C++. I programmatori C preferiscono
int *ciao;
I programmatori C++ preferiscono
int* ciao;
-- 
Horst

Newsgroup: it.comp.lang.c
Titolo: Due domande per super esperti

Ciao
1) sarebbe possibile riuscire a fare qualcosa con un computer privo di 
sistema operativo?...conoscendo ad esempio l'assembly?
2)perchï¿œ studiare l'assembly su dos ï¿œ consigliabile rispetto 
all'utilizzo di xp o Vista?
grazie

 all'utilizzo di xp o Vista?
Chi l'ha detto?  Se devi studiare il linguaggio assembly non credo 
faccia alcuna differenza, se devi esercitarti è probabile che XP o 
Vista non permettano di fare i casini che permetterebbe di fare il DOS 
)o per lo meno il vecchio DOS) che non avendo alcun tipo di protezione 
permetteva di far crashare il sistema al minimo errore.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   < 
http://giovanni.homelinux.net/
 >

 permetteva di far crashare il sistema al minimo errore.
Il problema, che io sappia, ï¿œ che sotto i kernel Windows NT ï¿œ difficile 
avere accesso diretto all'hardware, per questo forse la programmazione 
in assembly lï¿œ ï¿œ "meno consigliata".
Enrico

 Enrico
con NTx non hai accesso diretto all'hardware.
NT ha un file che si chiama hall.dll che riproduce
via software le risorse hardware, e nemmeno
l'amministratore ha accesso diretto a queste risorse.
Ciao

 senza SO.  
Se ha il BIOS puoi quantomeno installare un SO.
E.
Newsgroup: it.comp.lang.c
Titolo: [forse OT] Avviare prg C sotto NT

Tramite un file batch richiamo un mio programma in C (un porting di un prg
per unix che modifica a random il file delle signature) e che, subito dopo
avvia Eudora.
La cosa buffa è che per eseguire questo programma NT apre la finestra
del dos, cosa che vorrei evitare.
La domanda è: come si fa in generale ad avviare un exe in background
sotto windows? Devo modificare il prg in C o devo semplicemente
specificare qualcosa a livello di file batch (@echo off l'ho messo ma
serve solo a non mostrare i due comandi)
Spero di non essere troppo OT (è un caso che abbia scritto un prg per
win, quindi non seguo i NG appositi). 
-- 
Rd
"Soft as the massacre of Suns
 By Evening's Sabres slain." 

 windows? 
  Non si fa. Per Windows NT, semplicemente, non esiste il concetto di
/background/. I processi hanno due distinti spazi di esecuzione: come
applicazioni e come servizi, questi ultimi hanno una certa attinenza con
i tuoi felici ricordi del mondo UNIX. In ogni caso, troverai maggiori
informazioni nei gruppi relativi alla programmazione Win32.
	Alla prossima,
		Marco

applicazioni e come servizi, questi ultimi hanno una certa attinenza con
Ma a me basterebbe che non si aprisse la console ogni volta che viene
avviato questo prg (dovrebbe essere invisibile all'utente, che poi sarei
io: č giusto uno sfizio). Da quello che mi scrivi, sembrerebbe che devo 
trasformarlo in un servizio per fare una cosa simile...non mi sembra il caso
(anche perchč il prg deve scrivere il file signature ogni volta che viene
avviato eudora).
Del resto sotto linux mi limito a utilizzare uno script tipo
!#/bin/sh
/usr/local/bin/mioprg
/usr/local/bin/mutt  # (MUA)
quindi non lo eseguo in background (nel mio post precedente usavo il termine in
senso figurato, non tecnico).
Fa quello che deve fare e restituisce il controllo alla shell che avvia mutt).
Sotto NT viene aperta una console MSDOS e rimane aperta dietro a Eudora finchč
non lo chiudo (eudora). Eudora poi si avvia in maniera molto piů lenta, non
a tutto schermo, e in posizioni random (a volte si apre in basso a sx, a volte
in mezzo...). Misteri di NT.
Comunque grazie per l'informazione. Vedo di spostarmi su NG piů appropriati
ciao
-- 
Rd
"E da loro si attese diritto, ed ecco delitto,
 giustizia ed ecco lamento"
Newsgroup: it.comp.lang.c
Titolo: come si fa?[NIUBBISSIMO]

Devo fare un esame di fondamenti di informatica vorrei provare i
programmi fatti usando borland 6 enterprise su windows xp, ma dopo
aver compilato senza errori il programma da me fatto non funziona o
meglio non si visualizza con il prompt di ms/dos quello che si deve
visualizzare se qualcuno mi può aiutare posto le due righe del c.
Premetto che sono più che niubbo.

 ha scritto nel
messaggio news:4411d518.03052...@posting.google.com...

Ma il programma lo esegui da una finestra msdos o dall'ambiente borland?
Prova ad usare la prima soluzione, se non lo stai già facendo.
Ciao,
Ema
Newsgroup: it.comp.lang.c
Titolo: Aiuto gestione stringhe!!!!

Ciao a tutti,
ho un problema:
ho acquisito un stringa da tastiera e l'ho memorizzata in un array di
char.La stringa rappresenta una semplice espressione matematica del tipo
34*123.Ora devo scomporla in tre "sottostringhe":la prima deve contenere
34,la seconda * e la terza 123.
Per la prima utilizzo la funzione "strncpy",per la seconda nn ci sono
problemi mentre nn riesco a ricavare la terza.Sapete aiutarmi?Vi sarei
molto grato.
Grazie anticipatamente Davide
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 
Supposto che il puntatore p punti al carattere '*',
basta fare strcpy(terza_stringa, p+1);
g.

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

Alla fine ho molti dubbi:
Le funzioni descritte sotto, (copiate da K&R)  a partire da seed=65000
produranno la stessa successione di interi su una qualsiasi macchina
in cui gira un programma che le contiene?
Ci saranno errori di arrotondamenti diversi su diverse macchine poiché
si elabora un numero dal precedente?
int rand(void)
{next=next*1103515245+12345;
return (unsigned int)(nex_t/65536)%32768;
}
void srand(unsigned int p)
{next=p;}
Ho la vaga impressione che ogni compilatore (almeno bcc32.exe) usi una
sua rand() quindi essa è non portabile: è vero? Cosa dice lo standard?
Quale è la struttura dati di un file binario?
Dipende dal calcolatore tale struttura o è uguale su tutti?
In altre parole la successione di 1e0 di un file nel disketto sarà
sempre la stessa indipendentemente dal sistema operativo che lo legge?
Cosa distingue un file binario da uno non binario?
Grazie 
Cordiali Saluti a Tutti

Cosa distingue un file binario da uno non binario?
Ci sono sistemi operativi in cui questa differenza non
esiste (Unix per esempio).
Normalmente, per file non-binari si intende file di testo, i
quali sono normali file binari in cui, pero', determinate
sequenze di byte assumono un significato particolare e
particolare diventa, quindi, la tecnica per la loro lettura.
In realta', non esistono file non-binari, esistono solo file
su cui si applicano determinate convenzioni in lettura.
--
Andrea Laforgia - walkietalkie(at)
libero.it
http://www.geocities.com/AndreaLaforgia

Credo proprio di si'.
il fatto che in 22.7 Numeri casuali
Stroustrup dice
"in particolare, i bit meno significativi di un numero casuale sono
spesso poco affidabili, quindi rand()%n non è un modo portabile di
generare numeri casuali fra 0 e n-1"
contraddice tale risposta o no?

contraddice tale risposta o no?
Ti ho detto: il modo in cui vengono generati i numeri
casuali puo' non essere portabile, ma la funzione rand() e'
portabile, nel senso che e' riconosciuta da qualsiasi
compilatore ISO-compliant.

Newsgroup: it.comp.lang.c
Titolo: Mi consigliate un BUON libro sul C?

Mi potete consigliare un BUON libro sul linguaggio C, ovviamente in
italiano!
Tenete conto che io ho solo le basi e vorrei raggiungere un grado
abbastanza avanzato...
Grazie in anticipo e ciao.
P.S. Vorrei imparare il C ANSI.
Paolo Perini
lau...@digibank.it
http://www.digibank.it/kaiohshin/
"Non ho bisogno delle riviste! La mia vista divina mi permette
di vedere chi fa la doccia e chi si cambia!" - il dio KaiohShin

P.S. Vorrei imparare il C ANSI.
Kernighan e Ritchie, "Il linguaggio di programmazione C"; da anni
circola solo l'edizione che copre il C ISO (un tempo chiamato
C ANSI).  Non so la qualita` della traduzione italiana.
Alex



Newsgroup: it.comp.lang.c
Titolo: profiler per linux/gcc

Salve,
    esiste una utility free per linux che mi consenta di scoprire quali
sono le funzioni del codice che ho scritto che rallentano maggiormente
l'esecuzione?
?manu*

Emanuele Paolini (
pao...@rock.sns.NOSPAM.it
) wrote:
: Salve,
:     esiste una utility free per linux che mi consenta di scoprire quali
: sono le funzioni del codice che ho scritto che rallentano maggiormente
: l'esecuzione?
gprof
Ciao ciao
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

Newsgroup: it.comp.lang.c
Titolo: [ OT ] windows socket programming

Ciao a tutti!
avete qualche link sulla programmazione in C delle socket sotto SO windows?
Grazie!
ciao

 Grazie!
www.google.com
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/winprog/windows_api_start_page.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/_core_windows_sockets.3a_.background.asp
http://www.sockets.com/winsock.htm
e soprattutto
it.comp.programmare.win32
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c
Titolo: xor stringhe (x null)

 none

 ha scritto nel messaggio 
news:1104749355.7...@f14g2000cwb.googlegroups.com...


 na[r]^=chiave[n];
Ma scusa, metti per esempio che na[r] contenga il numero 65 (A maiuscola)
e che chiave[n] contenga lo stesso numero...
65 XOR 65 fa 0, quindi tu stai inserendo in quella posizione della stringa
na un null-terminator, che ti taglia via la stringa da in quel punto in
poi.
Analoghi disastri avvengono se il risultato corrisponde a un codice di
controllo (tipo il new line) o a uno spazio: in presenza di simili codici,
le direttive "%s" della printf() e della scanf() si comportano in modo
diverso.
Per evitare simili problemi, dotresti cercare di non modificare i codici
<= 0x20 (caratteri di controllo e spazio), e di non generarne di nuovi.
Esempio:
   #include <stdio.h>
   int main (void)
   {
      static char * chiave = "Pippo";
      int i = 0, c;
      while ((c = getchar()) != EOF)
      {
         if (chiave[i] == '\0')
             i = 0;
         if (c > 0x20)
            c = (unsigned char)(c & 0xE0)
              | ((unsigned char)(c ^ chiave[i]) & 0x1F);
         i++;
         putchar(c);
      }
      return 0;
   }
Comunque, mi pare una crittazione un po' deboluccia: un abbonato alla
Settimana Enigmistica te la farebbe fuori in mezz'ora.
--
Cingar
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it
Newsgroup: it.comp.lang.c
Titolo: Lampeggio dei caratteri

Perche' questa funzione ,che abilita il lampeggio dei caratteri o la
luminosita dei colori di sfondo non funziona piu' dopo aver cambiato il
computer ?
Presumo che il problema risieda nell'adattatore video .
Vi e' una nuova forma per abilitare questa funzione ?
#include <dos.h>
/* Questa funzione imposta il lampeggio del carattere (attributo = 1) , e/o
 attiva lo sfondo brillante (attributo = 0 ) - */
 void SetSfondo(char attributo)
{
 union REGS regs ;
 regs.h.bl = attributo ; // 1 attiva lamp... - 0 sfondo brillante
 regs.h.ah = 0x10 , 
regs.h.al
 = 0x03 ;
 int86(0x10,&regs,&regs) ;
 }

Vi e' una nuova forma per abilitare questa funzione ?
Scusami se non rispondo al problema, ma secondo me dovresti accedere
direttamente alla memoria da 0xb800:0 in poi e cambiare l'attributo
dei caratteri da far lampeggiare aggiungendo 128.
Andrea
------------------------------------------------
combatti anche tu il "nano scemo" :
http://www.geocities.com/Hollywood/Studio/6989
------------------------------------------------

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

Si possono programmare i socket in C?
se si quali sono gli include o le funzioni in questioni in questione?
Grazie!

 se si quali sono gli include o le funzioni in questioni in questione?
Dipende da che sistema operativo usi... non e' una caratteristica del C,
si tratta di librerie esterne; nel caso di linux le funzioni necessarie
sono presenti nella libc (la libreria che include anche tutte le
funzioni standard dell'ANSI C), in windows credo che ci sia winsocket o
qualcosa del genere...
comunque, non trattandosi di una caratteristica del linguaggio, qua sei
OT: dovresti chiedere su un newsgroup dedicato alla programmazione del
sistema operativo che usi.
-- 
Fabio Costa a.k.a. Ph0ton
--------------------------------------------------------------------
  Referente AGI - Sezione di Milano   Impaginatore capo di AmiWorld 
  Membro del MusicPlanet Musicgroup       (
http://amiga.eden.it
)    
     (
games.eden.it/musicplanet
)           Musician dei Genesis     
--------------------------------------------------------------------
Newsgroup: it.comp.lang.c
Titolo: Icona

Vi ringrazio anticipatamente per le eventuali risposte... Ho un piccolo
problema... avrei bisogno di sapere come si fa a "prelevare" l'icona di un
exe e applicare la stessa icona ad un altro exe... naturalmente tutto ciň lo
devo far fare ad una applicazione che stň scrivendo... mi potete aiutare???
spero di si... rispondetemi anche se siete in grado di risolvere
una piccola parte del mio problema... grazie...
    Lord Spawn

Dipende che compilatore usi ecc
cmq
Le file di icona sono di norma contenute in file .res che poi vengono
compilati inzieme con l'exe,
Ora tu hai un exe A non scritto da te (percui non hai il file .ico
basta che prendi un qualsiasi aplicativo di editing di icone e il
gioco e fatto, apri l'exe e hai salvi come .ico.
ora la cosa peggiore
VisualC++ crea automaticamente i suoi file .res... basta che lo apri
cerchi l'icona della aplicazione la sostituisci con quella del exe A e
il gioco e fatto
altri compilatori non so... cmq la magior parte usa i file .res
Piccolo consiglio se hai alcuni software poi prima generare l'exe e
poi modificare le relative informazione .res
cmq
dipende da cosa hai
Il Razziatore,
The Only Good Windows in an uninstalled Windows
-----------------------------------------------
E-MAILs : 
razzi...@usa.net
 (Primary),
 
IlRazz...@netscape.net
 (for Attachent)
WEB     : 
http://www.razziatore.dns2go.com/
ICQ     : 67552596
Newsgroup: it.comp.lang.c
Titolo: [help] Liste_ inserimento in coda...

Salve a tutti (sono di nuovo io ),
ho scritto la seguente procedura per inserire in coda ad una lista
Il tipo data è dichiarato in lista.h  come anche LISTA e sono un tipo (in
questo caso ) int
e una struttura che definisce la lista.
Il problema della funzione ins_in_coda è che provando ad inserire n elementi
ne inserisce 2
correttamente e poi continua a sovrascrivere i primi due...  esempio usando
una funzione stampa_lista l'output dell'inserimento di 4 elementi a,b,c,d è
il  seguente:
NULL  (inizio la lista è vuota)
a --> NULL  (tutto ok)
a --> b --> NULL  (tutto ok)
b --> c --> NULL  (qui inizia il casino ...)
c --> d --> NULL   ( ikes ! )
Come posso risolvere questo problema ? Grazie mille !!
LISTA ins_in_coda(DATA p, LISTA lst)
{
  LISTA nuovo;
  nuovo = malloc(sizeof(ELEMENTO));
  nuovo -> d = p;
  nuovo -> next = NULL;
  if(lst == NULL)
    {
      lst = nuovo;
    } else {
      while(lst -> next != NULL)
 {
 lst = lst -> next;
 }
 lst -> next = malloc(sizeof(ELEMENTO));
      lst -> next = nuovo;
    }
  return (lst);
}

  lst -> next = malloc(sizeof(ELEMENTO));
??
 lst non va allocato perchè infatti nella riga successiva poi gli assegni
l'indirizzo di "nuovo". Allocare memoria e poi assegnare a questa un altro
indirizzo di memoria è uno spreco, e oltretutto rende irrecuparabile la
memoria precedentemente allocata.


   nuovo = malloc(sizeof(ELEMENTO));
Io ti consiglio di usare questa tecnica quando usi malloc e simili:
  nuovo = malloc( sizeof( *nuovo ) );
e se vuoi allocare un array:
  nuovo = malloc( nelementi * sizeof( *nuovo ) );
questo ti permette di non sbagliare le dimensioni da allocare rispetto a
come lo userai dopo.
non e' per caso questa la soluzione del tuo problema? cioe' come hai
definito ELEMENTO?
ciao
donCiccio
Newsgroup: it.comp.lang.c
Titolo: quesito semplice

Salve a tutti..
la domanda è abbastanza semplice, capita quando si è alle prime armi.
Devo creare un'array di puntatori a liste di dimensione dinamica.
Ora supponendo che la variabile intera cont sia la dimensione da assegnare
ad esso, cosa devo fare per creare l'array?!
e soprattutto, essendo un array di puntatori a liste che struttura deve
avere?
Grazie a tutti.

 wrote in message
news:wU0Q8.49791$
TS.13...@news1.tin.it

-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 lista* pnt[cont];
non può andare così!
quella che hai scritto è un'allocazione statica che non può essere fatta
tramite una variabile.
Poichè la dimensione (che è contenuta in cont) è conoscibile soltanto a
tempo di esecuzione, puoi procedere in due modi differenti:
A) Allocazione dinamica:
    nodo * array = (nodo *)malloc(sizeof(nodo *)*cont);
    if (nodo==NULL)
        /* gestisci l'insufficienza di memoria...
    else
        /* array ora è l'array che hai creato...
B) Allocazione statica con sovradimensionamento (sconsigliabile per due
motivi: inefficienza di memoria, imposizione di un limite massimo a cont.
Consigliabile per un motivo ormai non più stringente dato le attuali memorie
a disposizione: è sicuro che la memoria che richiedi è a disposizione):
    nodo * array[1000];
    /* a questo punto hai un array sovradimensionato (1000>cont) del quale
userai soltanto i     primi cont elementi.*/
NOTE: ho usato nodo* perchè ogni elemento dell'array punterà alla testa di
una lista che è un nodo: quindi il puntatore alla lista non sarà altro che
il puntatore ad un nodo (la testa).
Ciao.
Newsgroup: it.comp.lang.c
Titolo: Corsi al CILEA

Il CILEA (Consorzio Interuniversitario Lombardo per l'Elaborazione
Automatica) di Segrate (MI) organizza regolarmente corsi di formazione
informatica indirizzati particolarmente a laureandi e dottorandi.
I corsi sono aperti a tutti, non solo agli studenti delle università
consorziate, ed hanno prezzi particolarmente vantaggiosi.
Attualmente sono attivi i seguenti corsi:
--- Il Fortran 90 per il  calcolo scientifico intensivo (prossima
edizione 25-28 maggio 2004)
--- Introduzione alle tecniche  di  calcolo parallelo e distribuito
(prossima edizione 8-11 giugno 2004)
--- Elementi di XML per  trattare e  presentare i dati (prossima
edizione 9-12 marzo 2004)
--- Introduzione alla programmazione orientata agli oggetti in C++
(prossima edizione 14-17 giugno 2004)
Tutte le informazioni sul sito CILEA: 
http://www.cilea.it

tutto cio' non c'entra una mazza col NG

 edizione 9-12 marzo 2004)
a me interesserebbe questo.
sono ancora in tempo per iscrivermi?
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c
Titolo: Dubbio

Domandina veloce, in questa funzione (presa a caso):
ofstream file("scoretable.snk", ios::out, 0);
oppure in questa (sempre presa a caso tanto per esempio):
printf("Prova di %s", name);
ciò che si trova all'interno della parentesi si chiama parametro o membro?
Io ero convinto che si chiamasse parametro ma un mio amico mi ha detto che
si chiama membro ed effettivamente mi è venuto il dubbio. Ho provato a
leggere qualche libro e fare caso alle sue parole ma non ho trovato nessun
punto dove li nominasse nella parte che ho letto.
Potreste dirmelo voi?
Grazie.
---
Ramses
---
icq:39860665
http://knowledgeparty.cjb.net
http://evilz0ne.cjb.net

ciň che si trova all'interno della parentesi si chiama parametro o membro?
I parametri sono gli argomenti delle funzioni.
I membri sono quelle variabili definite all'interno di una
struttura (classe o struct che essa sia).
Se ho una classe C++ in cui e' definito un membro "name" e
ho un metodo della classe che si chiama "ScriviNome", il cui
corpo e' il seguente :
void MiaClasse::ScriviNome()
{
     printf( "Prova di %s", name ) ;
}
Allora sto effettivamente stampando il membro "name" della
classe (e' sottointeso che "name" e' in realta'
"this->name") che diventa parametro della funzione printf.
--
CyberWalkie - walkietalkie(at)
libero.it

Per inciso, ero rimasto a:
int foo(int a,float b){...}
Questi sono parametri
...
foo(myvar,0.0);
Questi sono argomenti.
Saluti
Zello

 Questi sono argomenti.
Grazie ad entrambi.


Questi sono argomenti.
Non e' possibile fare una distinzione netta.
Argomenti e parametri, per me, sono esattamente la stessa
cosa.
Dato :
int foo( int a, float b ) 
posso pensare che a e b siano gli argomenti di foo, cosi'
come in 
foo( myvar, 0, 0 )
posso pensare che myvar e i valori numerici siano i
parametri della funzione.
--
CyberWalkie - walkietalkie(at)
libero.it

cosa.
La distinzione andrebbe fatta tra parametri (o argomenti) "formali"
(quelli del prototipo)
e paramatri effettivi, cioč quelli della chiamata 

 wrote in message
news:3b684a64...@news.inwind.it...

Ora sono molto piů confuso di prima :-))).
Forse non č una cosa semplice come pensavo.


(quelli del prototipo) e paramatri effettivi, cioč quelli della chiamata 
Cerchiamo di non confondere le idee a chi legge.
Parametri e argomenti non hanno distinzione.
Il concetto di parametro "formale" non esiste (tant'e' vero
che si potrebbe scrivere un prototipo semplicemente
evidenziando i tipi dei parametri).
Una funzione ha dei parametri di funzionamento che vengono
passati come argomenti della chiamata di funzione.
--
CyberWalkie - walkietalkie(at)
libero.it
Newsgroup: it.comp.lang.c
Titolo: esempio buffer circolare

Qualcuno potrebbe, gentilmente, postare
un esempio di implementazione di un buffer circolare?
Grazie
   Leonardo

 un esempio di implementazione di un buffer circolare?
si fa con una lista, in cui la coda punta alla testa, e rimane definito 
un punto d'inserzione tra i due

un esempio di implementazione di un buffer circolare?
#include <stdio.h>
int main()
{
    char c, buffer[10] = {0};
    int i = 0;
    while ((c = getchar()) != EOF)
    {
          buffer[i++] = c;
          if (i == 10)
          {
             i = 0;
          }
    }
    return 0;
}
-- 
Andrea Laforgia (
walkie...@libero.it
)
"Usenet is a strange place" [Dennis Ritchie]
Newsgroup: it.comp.lang.c
Titolo: McGraw Hill - H.Schildt - C guida completa, piena di errori???

Sto continuando a leggere questo manuale
veramente completo, ma purtroppo più vado
avanti nella lettura e più incontro piccoli errori
negli esempi scritti in linguaggio c apparentemente
insignificanti che però il più delle volte rendono
difficile la comprensione immediata degli argomenti..
Anche voi avete riscontrato la stessa cosa?
La mia è la Terza Edizione (in italiano).
Mi lamento perchè il libro in se' non costa
poi neanche poco, ben 51 euri!!!!
-- 
-- 
,Blob{..DX21..}
visitate il mio sito:
http://xoomer.alice.it/blob.dx21/
----
"The voice is still clear in my head;
it's the last word in monologue....
close-up, interior, night."
Peter Hammill - Incoherence [2004]

Anche voi avete riscontrato la stessa cosa?
Ben arrivato nel club :-)
Lo Schildt è tristemente famoso per essere un pessimo manuale di C.
Purtroppo l'autore, nonostante i ripetuti inviti ricevuti dal
comp.lang.c americano e le recensioni sul testo ("not recommended")
della Association of C/C++ Users, non si è astenuto dallo scrivere sul
tema.  Il suo libro è zeppo di fraintendimenti dello standard ed
errori palesi.

 errori palesi.
E dire che ero indeciso tra questo e "Linguaggio C guida alla programmazione 
3/ed" (sempre McGraw-Hill).
Per fortuna ho scelto il secondo, fiùùùùù!!!
Già che ci siamo (scusa se ti rubo il post ;-) che ne pensate dell'ultima 
edizione aggiornata allo standard ANSI del libro scritto da Kernigham e 
Ritchie, "Principi di programmazione e manuale di riferimento"? Ho fatto 
bene a comprarlo? (Da notare che sono un totale novellino sia nella C che 
nella programmazione in generale)
Ciao, Costantino.

Ritchie
L'ultima edizione del KernighaN & Ritchie (chiamarla "ultima" è un po'
ridicolo visto che risale ormai a quasi 18 anni fa) non è del tutto
allineata con lo standard C89 (che è quello precedente all'ultimo).
Pur coprendo alcune mancanze mediante gli "errata corrige", rimane un
buon testo di riferimento in generale, ma meglio accostargli
qualcos'altro.

 qualcos'altro.
Ottimo, quello che ho fatto io.
Newsgroup: it.comp.lang.c
Titolo: Lettura di una matrice mem su file

ciao a tutti vorrei un suggerimento....
ho un file contenente una matrice di double vorrei sapere come:
- contare il numero di righe e di colonne che compongono il file;
- copiare il file in una matrice in mem.
Tengo a precisare che so dichiarare dinamicamente una matrice ma non so
come leggere una matrice memorizzata su file!
grazie
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 come leggere una matrice memorizzata su file!
Evidentemente non puoi "contare" a meno che tu non usi dei trucchi. Ti
faccio un esempio
12345678901234567890
Considera questa una sequenza di cifre (0-9). Adesso dimmi: la matrice che
avevo in mente da quanti elementi era composta? (le soluzioni possibili
sono: 1x10, 2x5, 5x2, 10x1).
Cosa potresti fare: la cosa più semplice è mettere nel file, prima della
matrice vera e proprio, due interi contenenti le dimensioni.
(quindi il file avrà questo formato:
[lung][alt][double1][double2][double3][double4][double5]...
--- bye

 wrote in message
news:MhAcc.21190$
hc5.1...@news3.tin.it



 č possibile???
E che ne so. Se non lo sai tu! Guarda che qui nessuno ha la sfera magica,
sai? Se credi che sia strutturato cosě va a controllare! Prendi un editor
esadecimale e dacci un'occhiata.
--- bye

Newsgroup: it.comp.lang.c
Titolo: Pile, code, alberi ed amenità varie...

Conoscete dei siti che parlano di strutture dati dinamiche (come pila,
alberi ecc...) con un bel pò di codice da visionare?

 alberi ecc...) con un bel pò di codice da visionare?
Si avvicinano gli esami, heh :)?
http://www.nist.gov/dads/
Questa è una preziosa fonte di informazioni... piccolo CUT
Dictionary of Algorithms and Data Structures
This is a dictionary of algorithms, algorithmic techniques, data 
structures, archetypical problems, and related definitions. Algorithms 
include common functions, such as Ackermann's function. Problems include 
traveling salesman and Byzantine generals. Some entries have links to 
implementations and more information. Index pages list entries by area, 
for instance, sorting, searching, or graphs, and by type, for example, 
algorithms or data structures.

 ha scritto nel messaggio
news:Dx6K9.11450$ab2.3...@news1.tin.it...

Newsgroup: it.comp.lang.c
Titolo: To be ANSI or not to be?

Salve a tutti. Per questioni di studio (frequento informatica
all'università), devo sviluppare una piccola libreria in C che gestisca
archivi su memoria di massa.
Durante il corso abbiamo studiato il C, riferendoci, per quanto
possibile, allo standard ANSI (ma voi, avete mai letto 'sto benedetto
documento? Dove posso trovarlo?).
Per lo sviluppo, utilizzo principalmente il Visual C/C++ 6.0. Per
rendere le cose ancora più complicate, testo il codice anche con il
compilatore DJGPP v 2.03 e Watcom C/C++ 10.5.
Ecco il problema. Io avrei bisogno di utilizzare una funzione che mi
faccia il resize di un file (troncarlo, soprattutto). Di utilizzare un
file temporaneo per fare quest'operazione non se ne parla. Gli archivi
che devo gestire infatti, possono arrivare anche a 100 MegaByte ed
oltre. Tra le varie funzioni a supporto del programmatore, il VC (ma
anche gli altri due compilatori) offre la funzione _chsize(...). La mia
domanda è : è una funzione standard ANSI ? Ha senzo questa domanda?!
Nel VC, c'è un'opzione ( /Za ) per compilare codice ANSI. Tutte le
funzioni non ANSI dovrebbero dare errore. _chsize() non e' ANSI secondo
la documentazione del VC (l'underscore parla chiaro). Ma _chsize() non
da errore! Compila perfettamente!
Perchè mi chiedo? Perfino il compilatore DJGPP non dà errore con
l'opzione -ansi....
Help......

 Ma _chsize() non da errore! Compila perfettamente!
  Non credo che sia vero quello che dici. Io posso scrivere una funzione
_chsize perfettamente conforme allo standard e che, magari, stampa solo
la fatidica frase "Hello world!" da qualche parte, ed il compilatore
deve, ovviamente, accettarmela.
  I controlli di cui parli, invece, si riferiscono alla sintassi dei
programmi (per esempio, "void main()" non e` standard).
  Per quanto riguarda il tuo problema, non mi sembra che ci sia un modo
ANSI di risoluzione che non preveda l'uso di uno /swap/: dovresti
interloquire direttamente con il sottosistema di /file/ /system/ del tuo
ambiente operativo, e cio` non e`, come ti dicevo, previsto dallo
standard.
	Alla prossima,
		Marco

 l'opzione -ansi....
Prova con -ansi -pedantic -Wall.
EMG