mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: wchar_t e manipolazioni...cosa dice lo standard??

Ciao a tutti...
per esigenze di lavoro ho manipolato dei widechar
servendomi delle API per aprire file e leggere dati,
e oggetti di C++Builder, come i WideChar, per effettuare
ricerche di sottostringhe ecc...
Nel ANSI C ho visto che esiste il tipo wchar_t che ho utilizzato
anche io, ho visto che esiste la wfprintf() ecc...
ma non ho trovato funzioni per manipolare o aprire files...
penso che le normali versioni strtok, fopen, ecc.. non siano
utili al riguardo;
e allora cosa usare?!?!

 per esigenze di lavoro ho manipolato dei widechar
[cut]
Dimenticavo...
ho visto degli include sotto linux, tipo
wctype.h e wchar.h
che implementano, sembra ANSI C99, le corrispondenti
ctype.h ed string.h (in quest'ultima però le funzioni non sono come in 
ctype.h; mi aspettavo un wstrtok() invece di wcstok())
queste sono standard??
e per aprire,leggere,scrivere files?!?
Grazie a tutti per l'eventuale chiarimento

 Come fwprintf(), fwscanf() e tante altre.  Dovresti trovare la 
Quste funzioni le ho viste e sono presenti anche nella man...
ma per l'apertura dei files?? la fopen apre il descrittore
ma elabora su char=8bit e non sono riuscito a trovare la sua
corrispondente per 16bit...magari come per le funzioni stringa
avranno un nome un'pò a caxxo!

Newsgroup: it.comp.lang.c
Titolo: libri .NET Vendo

Salve,
Vendo i seguenti libri originali per .NET.
Ogni libro è in perfetto, incelofanato, cura maniacale e comprensivi di cd
quando acclusi.
Applied microsoft .NET Framework Programming = 30 euro
Inside C# = 20 euro
Microsoft C# il linguaggio = 15 euro
Designing Microsoft Asp.NET Applications = 15 euro
Wrox Asp.NET = 15 ero
MCSE Training - Microsoft SQL Server 2000 System Administrator Esame 70-228
= 30 euro
MCSE Training - Microsoft SQL Server 2000 Database Design and Implementation
Esame 70-229 = 35 euro
Programmare Microsoft Windows 2000 Active Directory = 25 euro
Wrox Professional .NET Framework = 30 euro
Programming Microsoft Windows With C# = 30 euro
Soap Guida dello sviluppatore = 20 euro
Microsoft MSIL = 30 euro
Per maggiori info contattare il seguente numero:
347 8454589
Ciao,
Andrea

io ho preso tutto su KaZaA
Newsgroup: it.comp.lang.c
Titolo: Programmazione rete

Qualcuno saprebbe indicarmi qualche risorsa (possibilmente ma non
necessariamente free) che mi insegni a usare le librerie di rete
*NIX?
Ammetto di essere completamente ignorante in materia, quindi
qualunque suggerimento potrebbe essere un buon punto di
partenza.
Grazie

 necessariamente free) che mi insegni a usare le librerie di rete *NIX?
Ciao,
 hai provato l'info della GLIBC?
Ha una buona sezione sui socket ... e' questo che intedevi?
 Ciao
 Federico

Immagino di si. Grazie per il suggerimento.

       ]
[ 
http://cikkox.altervista.org
      ]
[ GNU/Linux Registered User #365929 ]
[ GnuPG/OpenPGP key available       ]

 Grazie
"Unix Network Programming, Vol. 1, Terza Edizione"
R. W. Stevens, B. Fenner, A. M. Rudoff
Addison-Wesley
Poi _veramente_ non ti serve altro.
Saluti,
Marco Pallante
-- 
To email me, remove the no_ and _spam from my address.

Grazie a tutti. Una volta letto il manifesto, mi sono accorto che ero
del
tutto OT. Ma grazie a tutti per la collaborazione e scusate per
l'inesperienza.

Newsgroup: it.comp.lang.c
Titolo: about Double number

#include <stdlib.h>
int main()
{
      double a, b;
      printf("Enter the 2 floating point numbers\n");
      printf("(for example: 8.3200000E+05 8.2250000E+05)\n");
      scanf("%lf %lf", &a, &b);
      printf("%lf %lf", &a, &b);
      system("PAUSE");
      return 0;
}
Display:
Enter the 2 floating point numbers
for example: 8.3200000E+05 8.2250000E+05)
1.1234567E+05 2.1234567E+05     <- value I input
0.000000 0.000000                         <- values display
why it displays 0.000000 not 1.1234567E+05 and 2.1234567E+05 ?
is it the problem of "%lf" ?
i have tried "%f" also

 printf("%lf %lf", a, b);
by the way: it.comp.lang...
stand for italian.comp...
;)
bye
Newsgroup: it.comp.lang.c
Titolo: global o local?

Salve,
devo emulare un circuito analogico audio, con la memoria, con un algoritmo
(da scrivere in C) che
ne risolva
il modello matematico, aggiornato ai nuovi valori del segnale di ingresso, e
delle variabili di
stato, ad ogni passo del campionamento.
Ho suddiviso la elaborazione da svolgere ad ogni passo, in 10 funzioni,
ciasscuna delle quali
svolge un sottocompito del problema.
Ciascuna funzione deve elaborare un insieme di dati in comune, che sono le
variabili che
contengano i valori delle resistenze elettriche, e delle capacità
elettriche, delle tensioni, e
delle correnti elettriche, della rete analogica da emulare.
In totale queste variabili in comune sono una trentina.
L'obiettivo richiestomi è la efficienza.
 Però nello stesso tempo mi conviene scrivere le funzioni
in modo da agevolare il rintracciamento degli inevitabili errori di
scrittura del codice.
Ecco le due possibili maniere "a" e "b" per fare ciò:
a)ogni variabile suddetta viene dichiarata nel main  del tipo: "global".
b)ad ogni funzione, passo, come argomento, una struttura dati con tutte le
variabili suddette.
Così sono impiegate solo le variabili locali e mai global.
Secondo me sarebbe meglio, anche perchè più efficiente, la opzione "a".
Però il libro "C" di Schildt dice che l'impiego delle variabili "global" è
sconsigliato, perchè
 rende difficile trovare gli errori nel codice C.
Ora io chiedo a chi ha esperienza nella programmazione c:
1)è così scandaloso impiegare variabili "global" in un programma
in C?
2)Nel mio contesto ora descritto, ci sono effettivamente le problematiche
del debugging dette, nel caso venga
impiegata la opzione "a"?
3)Quale opzione mi conviene scegliere fra "a" e "b"?
grazie,
Adriano

 in C?
 > 2)Nel mio contesto ora descritto, ci sono effettivamente le problematiche
 > del debugging dette, nel caso venga
 > impiegata la opzione "a"?
 > 3)Quale opzione mi conviene scegliere fra "a" e "b"?
Non e' scandaloso. Pero' e' sconsigliabile perche' rende piu' complesso 
anceh modificare il codice in seguito.
In generale io preferisco passare parametri alle funzioni perche' cosi' 
e' chiaro cosa serve come input alle funzioni e cosa esce come output, 
senza bisogno di sapere come e' fatta dentro,guardando solo la 
dichiarazione.
Con le variabili globali hai due problemi: non sai quali variabili vanno 
inizializzate prima di chiamare una funzione e non sai quali variabili 
va a modificare.
Se sei l'unico a lavorare a quel programma e se e' un progetto piccolo e 
"usa e getta" che non modificherai mai piu' allora puoi anche ignorare 
questi aspetti di "pulizia" ma secondo me ti conviene farlo per entrare 
nella giusta mentalita' :)
Insomma, fossi in te io sceglierei comunque la b !
ciao
Giacomo
Newsgroup: it.comp.lang.c
Titolo: stampare in C

Salve a tutti.
Volevo chiedervi come si fa a stampare con la stampante qualcosa in C?
Bisogna invocare l'Interrupt n.05H oppure esiste qualche libreria che stampa
quel che c'e' nel video?
A me servirebbe stampare una semplicissima linea su carta....
grazie a tutti
euterpex...

Volevo chiedervi come si fa a stampare con la stampante qualcosa in C?
fprintf(stdprn,"Ciao\n") ;

gianfranco wrote:

e con linux? aggiungendo tale stringa gcc da errore...
Bisogna x caso usare system( ) e usare lpr?

Newsgroup: it.comp.lang.c
Titolo: Si puo' fare con #define ?

Salve a tutti.
Il problema č questo:
voglio definire stampa(X) in modo
#define stampa(X) <non so cosa>
in modo che quando scrivo
stampa(X) diventa printf("X: %d\n",X)
Per es.
void main()
{
int x=1,y=2,pippo=3;
stampa(x);
stampa(y);
stampa(pippo);
}
Dovrebbe dare
x: 1
y: 2
pippo: 3
cioč, esiste un modo per usare i parametri della macro all'interno di
una stringa?
Questo č solo un esempio del problema, mi interessa sapere se č
possibile fare una #define di questo tipo
Penso che non si possa fare, ma se qualcuno ha trovato un modo, ben
venga...

...

C'é una direttiva particolare, che francamente non ho mai usato, ma che
dovrebbe risolvere il tuo problema piů o meno cosě:
    #define stampa(X) printf(#X": %d\n", X);
Adesso non mi ricordo se #X va dentro o fuori dalle ""....
Spero di esserti stato utile.
Ciao.

una stringa?
Certo, devi usare il carattere speciale '#'
cioe' scrivere 
#define stampa(X) printf(#X"=%d\n", X);
Andrea Laforgia

Newsgroup: it.comp.lang.c
Titolo: Leggere UN Byte da un Socket

Ciao a tutti!
Sto scrivendo un programma che, tra le altre cose, deve gestirmi una
connessione via Socket.
Questa connessione verra' fatta da un semplice telnet.
Ora ho la necessita' di gestire un Byte alla volte, ma il mio programma
reagisce solo quando io mando n.
Ora, sono sicurissimo che telnet mi manda un Byte alla volta, visto che
altri programmi riescono perfettamente a gestire la cosa.
Quindi il problema e' nel mio programma.
Solo che non saprei come risolverlo.
Adesso ho questa riga:
n = recv(sock, s, 1, 0);
if(n > 0)
{
 ... fa qualcosa...
}
Il problema, come ho detto, e' che questa recv mi viene chiamata N volte
quando mando un n e non ogni volta che viene premuto un tasto.
Qualcuno sa dirmi dove sbaglio?
Il socket e' impostato a NON-BLOCKING.
Grazie
Luca Bertoncello
(
luca...@lucabert.de
)
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Maledizione al client che uso per spedire le News...
Non si vedono tutti i caratteri!
Il mio problema e' che il programma reagisce solo quando spedisco il tasto
enter (backslash n, che mi veniva visualizzato male).
Ciao


 
Di norma l'input da terminale è line buffered.
I dettagli di telnet (il programma) li trovi nella man page:
http://linux.die.net/man/1/telnet
Ciao  Manlio
Newsgroup: it.comp.lang.c
Titolo: problemi con fgets

come da oggetto,la fgets si memorizza la riga corrente fino al carattere
'\n' della riga...
esiste una funzione per togliere tutti gli spazi da destra della stringa
senza arrivare al carattere '\n' ????
a me succede che se la riga e':
stringa1 stringa2 stringa3
con la fgets ottengo una riga che si memorizza le tre stringhe piu' un numero
definito di blank dopo stringa3
non sapendo come risolvere il problema ho creato questa funzione, se mi
date un consiglio...
memorizzo riga per riga dentro un buffer e gli applico ad ogni riga questa
funzione:
char *right(char *stringa)
{
      char vettore[200],*fstringNULL;
      int i0;
      vettore[0]'\0';
      while(*stringa !'\0' && *stringa ! '\n')
	     vettore[i++]*stringa++;
      vettore[i]'\0';
      fstring  (char*)malloc (strlen(vettore));
      strcpy(fstring,vettore);
      return fstring;
}
ciao e grazie
__________________________________________________________________
Abbonati a Tiscali!
Con VoceViva puoi anche ascoltare ed inviare email al telefono.
Chiama VoceViva all' 892 800        
http://voceviva.tiscali.it
-- 
Posted from 
mail-4.tiscalinet.it
 [195.130.225.150] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *right(const char *s)
{
     int len = strlen(s);
     char *p = malloc(strlen(s)+1);     
     strcpy(p, s); 
     p[len-1] = '\0';
     return p;
}
int main()
{
    char s[100], *p;
    puts( "Scrivi il tuo nome:");
    fgets(s, sizeof s, stdin);
    puts("\nSenza eliminazione new-line:");
    puts(s);
    puts(s);
    puts(s);
    p = right(s);
    puts("\nCon eliminazione new-line:");
    puts(p);
    puts(p);
    puts(p);
    return 0;
}
--
Andrea Laforgia - walkietalkie(at)
libero.it
http://www.geocities.com/AndreaLaforgia

definito di blank dopo stringa3
Controlla bene la riga di input, questo non dovrebbe succedere.
-- 
Saluti,
    Mardy
http://castellina.org/interlingua

 char *right(const char *s)
scusami,perche' const char e non char???
-- 
Posted from  [213.82.129.50] 


scusami,perche' const char e non char???
Per evitare che si modifichi la variabile passata.


 char *right(const char *s)
Non sarebbe meglio di programmare una funzione simile 'inplace'?
La stringa nuova e sicuramente piu' corta di quella vecchia e la funzione
right alloca memoria della quale e responsabile l'utente di deallocarla.
J.

right alloca memoria della quale e responsabile l'utente di deallocarla.
No, la responsabilita' e' del sistema operativo.
Generalmente la memoria allocata viene deallocata in
automatico all'uscita da programma.
Ovviamente, se si parla di sistemi MS e' molto probabile che
questo non accada e quindi e' bene che vi sia una
deallocazione esplicita.


 '\n'.
E se riusi del codice...?

E se riusi del codice...?
Non quotare solo quello che ti piace :
"In ogni caso, se si vuol estendere l'uso della right per
tutti i tipi stringa, si possono aggiungere i controlli del
caso."
--

Newsgroup: it.comp.lang.c
Titolo: Jaca, C, Linux e i Socket Multicast!!

Vi é mai capitato di lavorare in Java o in C sotto linux con
i socket multicast?
Ve lo chiedo perché ci sto provando da qualche settimana senza esito:
In java mi viene sollevata una socket exception non appena apro un socket
multicast.
In C semplicemente non riesce a trasmettere sul socket o a fare il join ad
un gruppo.
Come si spiega secondo voi??
Ringrazio chiunque voglia aiutarmi!!!
P.S... perché non lavoro con win?.. In java le prestazioni col multicast
sono penose. In C le librerie che mi servono per altre cose sono troppo
scarse (in c++ non so ancora programmare)

Ringrazio chiunque voglia aiutarmi!!!
Ehm.. sei sicuro di aver compilato il tuo stack TCP con supporto per il 
multicast?
-- 
God is Real, unless declared Integer.
ObjectZone - 
http://space.tin.it/computer/csadun


Non saprei le nostre applicazioni che utilizzano librerie multicast non mi
hanno mai dato problemi sotto
linux, potrebbe essere che la tua installazione di linux abbia disabilitato
il multicast !

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

Scusate per l'oggetto ma sono un pò fuso.
Ho scritto un piccolo codice che riceve il ingresso da tastiera dei
caratteri e poi li memorizza in un vettore. Vorrei che se per un certo
(diciamo 4 sec) tempo non gli dò ( al programma) niente da tastiera. Lui
inserisce nel vettore tutti zeri.
E' possibile farlo e come.
grazie uagliu'.
--------------------------------
Inviato via 
http://usenet.libero.it

 E' possibile farlo e come.
L'I/O e' di default bloccante, in particolare l'I/O che puoi fare con le 
funzioni standard.
A seconda del sistema su cui sviluppi puoi utilizzare qualche alternativa 
(rendere l'I/O non bloccante, effettuare polling sul file, impostare un 
timeout).
Sotto Unix potresti per esempio usare una select sul file descriptor 1 
(stdin) in lettura, con timeout di 4 secondi.
Spostati su un gruppo piu' appropriato per una risposta piu' precisa :)
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."
Newsgroup: it.comp.lang.c
Titolo: parametri formali nelle funzioni.

Ciao  a tutti.
Rileggendo un testo per la seconda volta, mi scopro di non aver notato
durante la prima lettura quanto dichiarato :-O
parlando di parametri delle funzioni:
****copy mode on****
La dichiarazione degli argomenti segue le stesse regole delle
dichiarazioni delle altre variabili, con le seguenti eccezioni:
- etc
-etc....
-se la funzione non e' prototipo gli oggetti di tipo char e short sono
convertiti in int, mentre gli oggetti del tipo float sono convertiti
in double. 
Per le funzioni prototipo, gli argomenti attuali sono convertiti in
argomenti formali, come avviene per i normali assegnamenti.
****copy mode off ****
Allora, per la seconda non c'e' nessun problema. E il codice che segue
credo spieghi il perche'.
#include<stdio.h>
void sp(unsigned short int,short int);
int main(void)
{
short int a=0xFFFF;
printf("Valore attuale -> %d",a);
sp(a,a);
return;
}
void sp(unsigned short int p,short int q)
{
p>>=1;
q>>=1;
printf("\n    Funzione chiamata\n"
          "    %d \t   %d\n"
       "    ^^^^ \t  ^^^ \n"
       "   unsigned \t  signed"
       ,p,q);
return;
}
Ma leggendo la prima frase mi si e' accesa la spia tilt come nei
flipper. Intende dire che se non si usano i prototipi di funzione
allora il compilatore esegue dei cast come appunto descrivono, o
intende qualcos'altro?
Spero di essermi espresso bene, grazie.
PS non so se il mio esempio funziona con tutti i compilatori, perche'
lo scorrimento per tipi signed non e' specificato nello standard, se
deve essere logico o aritmetico.
Igor ROssetti

deve essere logico o aritmetico.
Perche', c'e' differenza in C ?
--
Walkie...@Libero.It (ICQ# 8143647)

Perche', c'e' differenza in C ?
Spero di non esprimermi male...
se un intero, per esempio e' unsigned e lo scorri a sinistra
(operatore >>) nel bit piu' significativo viene posto uno 0,
se e' signed e il bit piu' significativo e' 1 viene inserito un'altro
1.
Ciao 
Igor Rossetti

 deve essere logico o aritmetico.
Se non è specificato (ora non ricordo) allora, semplicemente, tu non ne
fare affidamento ma usa, eventualmente, il mascheramento.
EMG

1.
Penso che se sia signed il fatto che venga inserito un 1 o uno 0 dipenda
dall'implementazione, non è detto che ci sia sempre un 1.
Lanugo
Newsgroup: it.comp.lang.c
Titolo: Aiutatemi ho un problema con i files header

Sono un novellino del C, ho questo problema:
scaricando alcuni file di esempio in C qua e la' da 
internet ho 4000 problemi quando compilo.
Ci sono sempre errori nei file .h (header) e piu' precisamente sulle
variabili "byte" che 
il mio compilatore non riconosce.
Sbaglio compilatore o devo impostare qualche opzione in particolare?
Uso il Borland Turbo C ver. 2.0 con IDE (sotto DOS)
Aiutatemi per favore, 
	ringrazio in anticipo.
s.mar...@flashnet.it

Sbaglio compilatore o devo impostare qualche opzione in particolare?
Dove copi il file .h ?
Come e dove e' definito questo tipo "byte" ?
Che tipo di errore ti restituisce il compilatore ?
Andrea Laforgia
(remove NOSPAM from my address before reply via e-mail)

 il mio compilatore non riconosce.
non la riconosce perche` byte non e` standard.
probabilmente sara` un "unsigned char"
---
Ranger, email 
ran...@queen.it
http://members.tripod.com/%7Eranger_rg/

 Aiutatemi per favore,
L'hai detto - il tuo compilatore non riconosce il tipo.
Delle due l'una:
- ti procuri un compilatore piu' nuovo (il TC2.0 e' stato il mio secondo compilatore per msdos... ma almeno 8 anni fa! - ora e' decisamente preistorico)
- definisci un "typedef char byte;" *prima* di includere gli header.
Saluti,
	cs
-- 
Cristiano Sadun
Software Engineering & Consulting
email address: cris#sun6$itim$mi$cnr$it 
(for actual address please replace # by @ and $ by .)
Newsgroup: it.comp.lang.c
Titolo: min e nomi riservati?

il codice
#include <stdlib.h>
#include <stdio.h>
int min(int a, int b)
{printf("ok=%d\n", a+b);
 return a+b;
}
int main(void)
{min(1, 7);
 return 0;
}
mi ritorna
Error E2040 C:\prog1\capitolo4-8\min.c 5: Declaration terminated
incorrectly 
*** 1 errors in Compile *** Tool returned error code
[Bcc32]
sospetto che il nome "min" sia riservato in stdlib.h.
Questo comportamento è conforme allo standard?

 Questo comportamento e` conforme allo standard?
min  non e`  ne` una  funzione ne`  una macro  definita dallo  standard,
probabilmente e` definita dal compilatore della Borland. Il messaggio di
errore e` dovuto (probabilmente) al fatto che min e` una macro che viene
espansa nella tua dichiarazione, facendola divetare qualcosa di simile:
int (/*codice della macro*/)(int a, int b)
cia
Kronos
-- 
Home: 
http://kronoz.cjb.net
Se non sei parte della soluzione, allora sei parte del problema.
Newsgroup: it.comp.lang.c
Titolo: Quale libreria per la gestione degli HD?

come da ogetto. 


Non e` chiarissimo cio` che intendi. Cmq, se cerchi le funzioni per 
accedere ai file, ci sono due possibilita`:
1) non stai usando un sistema Unix, e allora ti devi affidare alle
    funzioni presenti nell'header stdio.h della standard library (funzioni
    come fopen(), fclose(), fwrite(), fprintf(), ecc.).
    Puoi trovare una descrizione di queste funzioni nel classico libro di
    Kernighan e Ritchie, oppure ti basta fare una semplice ricerca su
    Google, o anche ricorrere alle pagine di manuale di Unix.
2) stai usando un sistema Unix. Allora puoi sempre seguire la strada (1)
    oppure sfruttare le system call di Unix per l'accesso ai file.
    Informazioni sulle syscall di I/O le puoi trovare nelle pagine di
    manuale, oppure sicuramente sul web, o ancora puoi andare sul sito
    dell'OpenGroup
 
http://www.unix.org/version3/online.html
    e leggerti o scaricarti (gratuitamente, ma con registrazione) la Single
    Unix Specification, version 3, un MUST per chiunque programmi sotto
    Unix. Altrimenti puoi procurarti il libro "Advanced Programming in the
    UNIX Environment", di Stevens, edito da Addison Wesley, una bibbia da
    oltre 700 pagine che, per quanto risalga al '92, rappresenta ancora una
    miniera ricchissima di informazioni. Prezzo: 70 Euro circa.
NB. Dove ho nominato Unix, per correttezza, forse si dovrebbe leggere
     POSIX.
Saluti,
Marco
Newsgroup: it.comp.lang.c
Titolo: scrivere programmi in c

ciao genti.
vi spiego il mio dubbio, nella speranza che qlc me lo sappia risolvere e 
che mi comunichi in ng la soluzione...
allora: ho comprato <Programmare in c> e sto studiando con disciplina.
per ora solo teoria e qualche piccolizzimo esercizio di scrittura di 
mini-programmi.
però tutto a mano, perché il libro non suggerisce nessun programma per 
scrivere il codice del c.
ecco la domanda: che programma posso usare per scrivere in c???
(faccio presente che possiedo un mac con sopra l'ultima release del so, 
mac os x 10.2.6).
spero molto in una vostra risposta.
ciao,
maurizio c.

 maurizio c.
Ciao e a risentirci

 Sul NG adatto non si disturba nessuno ;-P
ma io ho delle domande sul c da fare (o che farņ).
non credo di essere ot.
o qui si puņ postare a proposito del c solo si usa un determinato os?
non credo... :)
ciao * m.

 non credo... :)
No, in questo NG si parla del linguaggio C; se hai problemi riguardanti
scrittura di programmi, sintassi e via dicendo questo è il NG giusto. Nel
caso specifico il tuo problema riguarda il reperimento di un compilatore per
il tuo Mac, per cui è meglio se chiedi nel NG che ti ha consigliato Gigi.
Ciao


Con OsX puoi anche aprire una finestra di terminale, giusto?
Da li' credo che tu possa usare editor di testo tipici di unix (vi, emacs) e
forse troverai anche il compilatore gcc, senza dover scaricare alcunche'.
Ciao,
Ema

 forse troverai anche il compilatore gcc, senza dover scaricare alcunche'.
OK per il terminale, ma gcc viene installato con i DevTools per cui bisogna
armarsi di pazienza e scaricare..........
Di default almeno con MacOs X 10.1.5 non viene fornito alcun compilatore.
Saluti Gigi

"Gigi" <ldan...@elesiaXyZ.it> ha scritto nel messaggio
news:bgqa32$2khu$1...@newsreader1.mclink.it...

Non basta lanciare "cc" dalla shell e vedere cosa viene fuori?
Ciao

 Ciao
Purtroppo non viene installato di default quindi lanciare "cc" ritorna un
"command not found"
Ciao Gigi.

Newsgroup: it.comp.lang.c
Titolo: Cerco sorgenti ftpd

Sto cercando sorgenti di un qualsiasi server ftp.
Ho guardato in alcuni siti di distribuzioni di Linux,
ma con scarsi risultati. Se qualcuno puo' darmi una
mano... grazie mille.
S.

Ogni distribuzione linux è dotata dei sorgenti.
Prova ad installarla.
;-)
PS.
I sorgenti, normalmente devono essere installati anche loro come pacchetto.
ciao



Non cercare sui siti delle distribuzioni, cerca su 
http://freshmeat.net/
-- 
 Ciao, Bianco.
 Reply to luca.bianco (at) 
tiscalinet.it

 
http://www.wu-ftpd.org
Thanks!
Sim
Newsgroup: it.comp.lang.c
Titolo: time.h help!

Ciao a tutti....
Premetto che sono un newbie quindi non ho molta esperienza....
Sto cercando di fare un programma che legga il giorno del mese e lo
memorizzi in una variabile(tipo quando digito su linux "date +%e")....
Grazie a ciň potrei fare eseguire al programma degli eventi al variare della
data....
Il fatto č che non ho la minima idea di come fare: qualcuno mi puň dare una
dritta? Il programma lo voglio "sviluppare"(:-) su W98.... (Anche se mi date
la dritta per Linux comunque va bene lo stesso....)
Ho spulciato le man pages della funzione ctime, time,ecc... e l'help del lcc
su Windows ma non riesco a capirci molto.... Non ci sono esempi pratici....
Se mi potete fare un esempietto ve ne sarei eternamente grato(Se non si
impiega molto).....
Grazie per una evantuale risposta
Steve

memorizzi in una variabile
Eccoti un esempio che mostra come usare le varie informazioni inerenti
a data/ora :
#include <time.h>
#include <stdio.h>
#include <conio.h>
int main(void)
  {
  time_t timer;
  struct tm *tb;
  char *mese[] = {"Gennaio", "Febbraio", "Marzo",
    "Aprile", "Maggio", "Giugno", "Luglio", "Agosto",
    "Settembre", "Ottobre", "Novembre", "Dicembre"};
  char *giorni[] = {"Domenica", "Lunedi'", "Martedi'",
    "Mercoledi'", "Giovedi'", "Venerdi'", "Sabato"};
  timer = time(NULL); // Prende l'ora corrente
  tb = localtime(&timer); // la converte in struttura tm
  printf("\n\nSono le ore %02d:%02d:%02d del %d %s %d.",
    tb->tm_hour, tb->tm_min, tb->tm_sec,
    tb->tm_mday, mese[tb->tm_mon], tb->tm_year + 1900);
  printf("\nE' %s ed e' il giorno n. %d dell'anno.",
    giorni[tb->tm_wday], tb->tm_yday + 1);
  printf("\nL'ora legale %se' in vigore", tb->tm_isdst ? "" : "NON ");
  getch();
  return 0;
  }
ciao

Non so come ringraziarti....
Non solo hai soddisfatto la mia richiesta ma mi hai anche spiegato tutte le
opzioni possibili....
Grazie ora ho capito....
Steve
:-D
Newsgroup: it.comp.lang.c
Titolo: Algoritmi in C

Avrei intenzione di comprarmi "Algoritmi in C" e vorrei un vostro
consiglio se l'acquisto è conveniente; mi piacerebbe conoscere
eventualmente un piccolo sommario di massima dei contenuti; spiega bene
la matematica di base?
Grazie mille.

Se parli del sedgewick è fantastico e si fa apprezzare anche dopo
molto tempo.
E' una vera miniera di algoritmi; io ho una edizione comprata 3 anni
fa:
1 introduzione
2 il C
3 strutture elementari (liste pile code, array tipi di dati astratti)
4 Alberi
5 ricorsione
6 analisi degli algoritmi (complessita' computazionale)
7 Implementazione degli algoritmi
8 metodi di ordinamento elementari
9 Quicksort
10 ordinamento digitale
11 code con priorita' (heap)
12 mergesort
13 ordinamenti esterni
14 metodi di ricerca elementari
15 alberi bilanciati
16 hashing
17 ricerca digitale
18 metodi di ricerca esterni
19 ricerca su stringhe
20 pattern matching
21 parsing
22 compressione dei file
23 crittologia
24 metodi geometrici elementari
25 ricerca di una regione convessa
26 ricerca di un intervallo
27 intersezioni geometriche
28 problemi del punto piu' vicino
29 Algoritmi elementari su grafi
30 connettivita'
31 grafi pesati
32 grafi orientati
33 flusso di una rete
34 Corrispondenze
35 numeri casuali
36 Operazioni aritmentiche
37 eliminazione gaussiana
38 interpolazione
39 integrazione
40 algoritmi paralleli
41 Trasformata di fourier veloce
42 programmazione dinamica
43 programmazione lineare
44 ricerca esaustiva
45 problemi np completi
(Se ti va, comprati l'edizione in inglese che le traduzioni a volte
fanno brutti scherzi!)

Ti ringrazio per il disturbo.
Stavo pensando proprio al sedgewick. Ti volevo chiedere se il testo
spiega la matematica di base oppure bisogna prendere qualcos'altro.
Ciao
Newsgroup: it.comp.lang.c
Titolo: aiuto con operatore sconosciuto

Premetto che non conosco benissimo c, ho fatto un esame all'università
qualche anno fa e i miei ricordi sono pochi.
Vorrei quindi sapere (non riesco a trovarlo su nessuno dei miei vecchi
libri), cosa significa un'espressione del genere:
Nrows = (N>>1) + 1;
e poi cosa significa quando si mette l'asterisco davanti ad una variabile,
tipo:
char *carattere;
grazie mille a chiunque mi risponda.
michele

 michele
Prego,
Riccardo
-- 
-=Riccardo Galli=-
 _,e.
s~  ``
 ~@.   ideralis Programs
.   ol 
 `**~  
http://www.sideralis.net

 michele
bye
--Lorenzo

Grazie mille, non importa che mi spiegate i puntatori, li conosco e so
(inizio a ricordare) qual è il loro uso. Scusate le domande cretine.
ciao ciao
michele

Newsgroup: it.comp.lang.c
Titolo: [Cerco] Compilatore ANSI C a 16 bit

Sapete indicarmi un sito dove posso scaricare un compilatore { magari
sotto GPL } ANSI C che produca dei binari a 16 bit sensa system call o
al max system call al BIOS. Sto scrivendo un Bootloader per questo mi
serve della printf e conpany non mi interessa { li ho gia riscritte
tutte in asm ci ho messo un po' ma sono venute bene :D }
il GCC non va bene perke produce binari a 32bit.
il BCC { non il Borland ma il vecchio GCC prima che cambiasse il nome
} "andrebbe bene" ma quando provo a dire -ansi mi chiede uno strano
exe e cmq 
int foo ( a ) int a {
}
non mi pare proprio ansi e a voi?
Io avrei bisogno di linkare insieme { in modo progressivo } + file c e
quale file asm
Il Razziatore,
The Only Good Windows is an uninstalled Windows
-----------------------------------------------
E-MAILs : IlRazziat...@NOSPAMnetscape.net
ICQ     : 67552596
-----------------------------------------------
Founder of MediaPlayer Project
http://mpp.iwebland.com

il turbo C 2.0 disponibile gratuitamente nel museo sul sito della boreland
puo' andare ?
è l'unico che conosco che mi sembra assomigliare a quello che chiedi..
guarda un po'.. ciao!

č l'unico che conosco che mi sembra assomigliare a quello che chiedi..
Io ho il compilatore 3.01 ma cmq mette qualke int 21 di troppo

Newsgroup: it.comp.lang.c
Titolo: Consigli Mutex e fork()

Ho un processo A che comprende 2 thread A1 e A2. In A viene definito un
mutex che serve per bloccare/permettere l'accesso ad una FIFO in memoria.
In pratica il thread A1 scrive nella FIFO e il thread A2 legge dalla FIFO.
In questo modo funziona tutto correttamente. Ora, tramite una opzione da
linea di comando devo modificare il funzionamento del programma nel
seguente modo: processo A con thread A1 che scrive nella FIFO, fork() di A
in un processo figlio B dove si trova una funzione che deve leggere dalla
FIFO. In quest'ultimo caso i Mutex non funzionano piu'! Come mai? Come
posso risolvere il problema?
Grazie a tutti...
GiAn

 fork()
Non e' una domanda per it.comp.lang.c: non esiste una funzione fork() 
nel C standard. Non posso neanche indirizzarti nel gruppo giusto perche' 
non hai specificato il tuo sistema di sviluppo.
Ciao
-- 
Cybertoldo
Per rispondermi via email, sostituisci moc.liamg con 
gmail.com

 
Ops, scusate...
Linux!
Ciao...
GiAn

 Linux!
(ottima scelta :) )
Prova su it.comp.os.linux.development

Newsgroup: it.comp.lang.c
Titolo: Testo Programmazione avanzata C in ambiente Linux

Qualche suggerimento?
Grazie a tutti

 ha scritto nel messaggio
news:bn0j2o$rgtkg$1...@ID-201018.news.uni-berlin.de...

Newsgroup: it.comp.lang.c
Titolo: quale tipo usare? int, short int, ...

ciao a tutti!
in un piccolo programmino, mi trovo in questa situazione
main()
{
short int a,b,c;
FILE *in, *out;
...
fread(&a, 2, 1, in);
fread(&b, 2, 1, in);
c = (a+b)/2;
fwrite(&c, 2, 1, out);
...
}
il problema è ovvio: se (a+b) non è pari, il valore che viene salvato in 
c non è corretto.Potrei ovviare a questo salvando (a+b) invece che 
(a+b)/2, ma in questo caso c potrebbe essere troppo piccolo per 
contenere il risultato.
Il mio dubbio è: visto che devo lavorare con TANTI file, anche grossi 
(fino a 50MB), cosa mi conviene fare? Io ho in mente due soluzioni:
soluzione 1:
...
int c;
c = a+b;
...
soluzione 2:
...
float c;
c = ( (float)(a+b))/2.0;
...
Ma non so se la seconda sarebbe corretta e se mi darebbe un programma 
più o meno veloce...
Scusate la prolissità, e grazie mille per ogni risposta!
andre
PS: cosa potrei fare se mi trovo nella stessa situazione con degli int?
ovvero: se ho
{
int a,b;
...
c = (a+b);
...
}
ed il mio pc usa 4 byte sia per gli int che per i long int... cosa posso 
fare per portarmi dietro la somma corretta?

 fare per portarmi dietro la somma corretta?
O usi un tipo "superiore" che riesce a rappresentare la
somma (es: long long se disponi di un compilatore
C99 o che ha tale estensione) oppure usi un approccio
diverso.
Visto che i tipi superiori sono probabilmente più
grandi in termini di occupazione, non trascurerei
l'ipotesi di memorizzare sia a che b nel file.
Ma credo si possano inventare tecniche più sofisticate
per risparmiare memoria.
La prima che mi viene in mente:
se la somma di 2 int è data da:
    a+b = 2m+x con x = 0 oppure 1
allora potresti fare il calcolo di a+b nel tipo superiore
e poi ottenere il valore di m, cioè (a+b)/2, e il valore
x, cioè (a+b) - 2m. Tieni presente che lo spazio
per memorizzare x è di un solo bit.
Mentre quello per memorizzare 'm' è quello che occorre
per il singolo addendo.
Quindi se lo spazio per memorizzare a (oppure b) è
k bit, allora lo spazio per memorizzare
il risultato (più il resto) è di soli k+1 bit.
Non perdi quindi l'informazione se a+b era dispari o pari.
Quindi puoi fare un file A dove memorizzi tutti gli 'm' e un
file B dove memorizzi tutte le 'x' impacchettate in byte.
Naturalmente risulterà size(A) circa uguale a k*size(B).
--
Giorgio Silvestri
DSP/Embedded/Real Time OS   Software Engineer

 per memorizzare x è di un solo bit.
Piccola precisazione.
In realtà per gestire  le somme negative, quindi con
resto -1 nel caso di somma dispari, occorrerebbe un
bit in più.
Riepilogando si può fare così:
resto = 0 ---> x = 00
resto = 1 ---> x = 01
resto = -1 ---> x = 10
la configurazione binaria x = 11 è "spare".
Il valore di m è calcolato come sempre: m = (a+b)/2.
Il risparmio di memoria è comunque notevole.
k+2 bit invece di 2*k per un tipo superiore
a quello utilizzato che occupa il doppio
del tipo originario.
[...]


 news:FciQg.116895$_J1.8...@twister2.libero.it...
[...]
grazie mille per le precisazioni ed i suggerimenti!
ne farò buon uso...
-- 
andre
Newsgroup: it.comp.lang.c
Titolo: strumenti per l'analisi del codice: ne conoscete?

Ciao a tutti.
Ho il problema di dover documentare in modo molto approfondito un
programma per microcontrollore scritto in C standard; prima ancora di
questo, è necessario operare una revisione integrale del codice (in
particolare, per verificare che soddisfi alcune regole/convenzioni che
sono state definite).
Il codice, piuttosto voluminoso, è diviso in oltre un centinaio di
file, di varie dimensioni.
Avrei bisogno di poter svolgere analisi sul codice come:
- per ogni funzione (di ogni file), sapere: quante volte è chiamata e
da quali funzioni (inoltre, quante chiamate per ciascuna di esse),
dividendo le chiamate effettuate da funzioni dello stesso file dalle
chiamate effettuate da funzioni di altri file;
- per ogni file, stabilire quali altri file chiamano funzioni del primo
(versione di più alto livello della richiesta precedente);
La stessa cosa dovrebbe essere fatta per le #define e, a livello di
singolo file, per le variabili globali (quante e quali funzioni usano
ciascuna variabile globale?).
Sapete se esiste qualche ambiente o tool in grado di effettuare analisi
e statistiche di questo genere?
Un sincero ringraziamento a tutti coloro che mi potranno aiutare, agli
altri grazie lo stesso per la pazienza di avermi letto! :-)
Edoardo

 Edoardo
non sembra difficile..
potresti provare a farlo tu un programma semplice che faccia quello che
desideri..
-- 
www.iuz-lab.info


So che non è difficile :-)
Il problema è che faccio prima a fare a mano piuttosto che scrivere un
software che mi supporti il lavoro, visto che lo devo usare solo in
questa occasione e, soprattutto, i tempi sono molto, troppo ristretti.
Pensavo magari esistesse qualche ambiente o tool che già integra
questo tipo di funzioni. L'ambiente che sto usando io permette solo il
find (ma non il replace) su tutti i file del codice: poco, ma
sufficiente per uscirne (anche se in modo laborioso).
Grazie comunque ;-)
Edoardo


Prova con doxigen
http://www.stack.nl/~dimitri/doxygen/
Newsgroup: it.comp.lang.c
Titolo: problema con le stringhe e compilatori

Sto iniziando ad imparare il c/c++ ed ho riscontrato la seguente discordanza
tra il compilatore Turbo c++ v.3 della Borland (versione dos) e visual c++
v.6.
Con il seguente codice, utilizzando il primo non ho problemi, mentre con il
secondo quando tento di eseguire *a='b' (esecuzione tramite la funzione
debug step over) viene dato il seguente errrore:
Unhendled exception in nomefile.exe: 0xC0000005: Access Violation.
Durante la compilazione con i due software non ho riscontrato ne' warning
ne' errori.
Con visual c++ sembra che un puntatore a caratteri a cui e' stata assegnata
una stringa non permette piu' l'accesso ai singoli caratteri: infatti se
sostituisco la a* con a[0] la risposta e' identica.
Siccome vorrei utilizzare l'ambiente visual c++, vorrei risolvere questo
problema.
Ringrazio per le risposte e le soluzioni al mio problema, Guido Lombardi
#include <stdio.h>
void main()
{
        char *a;
        a="hello";
        printf("\n ecco il risultato %s \n", a);
        *a='b';
        printf(" ecco il risultato %s \n", a);
        a++;
        *a='x';
        a--;
        a[3]='q';
        printf(" ecco il risultato %s \n", a);
}

        *a='b';
La stringa che allochi scrivendo "hello" nel tuo codice è read-only, e di
conseguenza non puoi modificarla. Il fatto che a non sia un ptr ad un valore
costante non ti ha permesso di capire quello che succede, e come già detto
più volte questa è un po' una mancanza del C.
Prova a scrivere
int main()
{
    char a[]="hello";
    printf("\n ecco il risultato %s \n", a);
e così via.
Lanugo

Newsgroup: it.comp.lang.c
Titolo: Creare file audio da microfono...come?

Ciao a tutti.
Ho la necessità (ma anche la curiosità) di creare un programmino (per Linux) 
in grado di creare un file audio (di qualsiasi formato) a partire da un 
microfono collegato alla scheda audio.
E' possibile?
Se si, poichè non so da dove iniziare, potreste darmi qualche dritta?
Grazie mille anticipatamente


Penso che questo non sia il newsgroup giusto. Ti consiglio di
provare su it.comp.os.linux.development.
ciao
Giacomo
Newsgroup: it.comp.lang.c
Titolo: aiuto problema link di .lib con BorlandC++

Ciao,
Con Microsoft C++ riesco a linkare tranquillamente una libreria .lib al mio
sorgente.
Sono passato a Borland C++ Builder 6 ent e in fase di linking mi da il
seguente errore :
[Linker Error] 'H:\DEV\myPROG\LIB\NTGDK.LIB' contains invalid OMF record,
type 0x21 (possibly COFF)
Cosa puň essere ???
grazie a tutti !
ciao

 ciao
Saluti
Rosario Ianuale

 Il linker ti dice, in pratica, che non capisce il formato dei file
oggetto.
purtroppo il problema era che non avevo il sorgente di tale libreria :-(
ma ho risolto con il comando coff2omf.exe !!!
menomale !!
grazie ciao!

 Cosa può essere ???
Quello che c'e' scritto: la libreria e' in formato COFF e BCB supporta
solo i vecchio OMF, va convertita con COFF2OMF. Lo trovi tra le utility
di Digital mars C++, ad esempio.
-- 
A. Top posters
Q. What's the most annoying thing on Usenet?

 compilatore della Borland.
Quali sorgenti? potrebbe non averli!


 Quali sorgenti? potrebbe non averli!
Ok. Ma ho supposto (male) che la libreria l'avesse scritta lui... tutto qui.
E poi, mi pare, che nella cartella bin del C++Builder ci sia già un
convertitore
coff/omf.
Saluti
Rosario Ianuale

Newsgroup: it.comp.lang.c
Titolo: file vuoto e eof

Ciao a tutti, ho un problema di lettura a file.
Devo eseguire la ricerca di una stringa all'interno di un file di testo,
che può però - in alcune eccezionali occasioni - essere vuoto. 
La mia routine basata sul feof non funziona in questo caso:
char temp[100];
while  (! feof( parsfile))
{
	fscanf (parsfile, "%s", temp);
	//successive procedure di manipolazione dell'array di caratteri ...
}
Se il file risulta vuoto, il programma non esce mai dal ciclo while (i
file vuoti non hanno il carattere di eof, suppongo a questo punto...) 
cosa potrei fare?
ciao, Giorgio

 ciao, Giorgio
-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com
 - The #1 Newsgroup Service in the World!
-----==  Over 80,000 Newsgroups - 16 Different Servers! =-----

 file://successive procedure di manipolazione dell'array di caratteri ...


fscanf (parsfile, "%s", temp);
Consiglio generico: quando potete, non usate fscanf. Fscanf non ha modo di
sapere quanto spazio allochi, in questo caso, a temp. Cosa succede le la
parola che leggi è più lunga dello spazio allocato?
Si potrebbe al posto usare fgets (che permette di controllare la lunghezza
dell'input letto) e poi spezzare la stringa in più parti con strtok o al
limite usare sscanf sulla stringa già letta, allocando un buffer che come
lunghezza massima possibile avrà quella della stringa letta da fgets.
Se ti servono esempi chiedi pure.
Lanugo
Newsgroup: it.comp.lang.c
Titolo: Svuotamento buffer di un socket

Ho già postato questa domanda tempo fa su it.comp.os.linux.development ma 
non ho ricevuto risposta, la ripropongo qui... è un po' OT ma forse non 
troppo, visto che i socket sono utilizzabili su diverse piattaforme...:)
Ho la necessità di svuotare il buffer di ricezione di un socket (UDP).
Attualmente uso:
recvfrom(sock,NULL,64000,0,NULL,NULL);
ma qual'è la dimensione massima dei dati in attesa di essere letti ? 64 Kb 
(la dimensione massima di un pacchetto IP) è un valore sufficiente ? 
Potrebbero esserci in coda più di un pacchetto ?
Grazie...:)
-- 
Lorenzo

 Potrebbero esserci in coda piů di un pacchetto ?
prova a controllare quanto vale SO_RCVBUF con getsockopt, cmq dovrebbe
bastare (al limite guarda in /proc/sys/net/core/rmem_default).
Ciao
- -- 
No matter. Try again. Fail again. Fail better.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)
iD8DBQE/GuKvQb6qi6QXZLkRAnkrAJ9r8dUXgblnyVTWbUhQIt3FPh9B/ACfUi0/
mutqS02bgiFHK5NNWcYmuMs=
=XM/p
-----END PGP SIGNATURE-----

 bastare (al limite guarda in /proc/sys/net/core/rmem_default).
65535 (già, mi dimentico sempre che 64k != 64000)
Comunque mi confermi che con una singola chiamata a recvfrom() si riesca a 
svuotare tutto ? Il mio dubbio è nel caso che arrivino tanti pacchetti da 
indirizzi sorgenti diversi...
-- 
Lorenzo

 indirizzi sorgenti diversi...
per star tranquillo puoi fare un ciclo con delle select e timeout molto
ristretti.
Ciao
- -- 
No matter. Try again. Fail again. Fail better.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)
iD8DBQE/GvxBQb6qi6QXZLkRAj1cAJwOf9+etC+ekCdGWUk60CCWcyZa4QCfav6D
5udxL5kAO6A6AUUpeU0UAEY=
=T5Wv
-----END PGP SIGNATURE-----

 ristretti.
Visto che il socket è non bloccante dovrebbe andar bene anche:
while (recvfrom(/*...*/) > 0);
che ne dici ?
Grazie mille per tutti i suggerimenti...:)
-- 
Lorenzo

 che ne dici ?
sě dovrebbe andare bene, occhio pero' a tenere il NULL di cui si discuteva
prima, perchč recvfrom ritornerebbe sempre -1.
Ciao
- -- 
No matter. Try again. Fail again. Fail better.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)
iD8DBQE/GwaYQb6qi6QXZLkRAkibAKCECy4McletzsHz4bZab2eU1Xcr5gCgnv5B
CaYPlTtf1cbLuxrQt1d2scM=
=mEki
-----END PGP SIGNATURE-----
Newsgroup: it.comp.lang.c
Titolo: malloc

Qualcuno mi sa spiegare come è possibile che una malloc vada a crearsi dello
spazio in una zona riservata di memoria?
E' un problema che mi sta facendo impazzire.
Ciao a tutti e grazie.

spazio in una zona riservata di memoria?
Dipende dal sistema operativo.
Sotto Windows, per esempio, puo' appoggiarsi alle routine di gestione
della memoria Heap.
--
Andrea Laforgia - walkietalkie(at)
libero.it
#exclude <windows.h>

della memoria Heap.
Diciamo pure che questa e' la prassi seguita dalla maggior parte dei
sistemi operativi...
ciao, acc.   
a...@libero.it

spazio in una zona riservata di memoria?
Spiegati meglio, cosa intendi per riservata? Vorresti utilizzare un
indirizzo preciso?
-- 
Saluti,
    Mardy

In effetti soto w95 va in errore, ma se faccio girare il pgm su Main Frame
OS/390 funziona correttamente. Sotto Unix non sono ancora riuscito a
compilarlo. La cosa strana è che sotto W95 ho provato sia il compilatore
Microsoft sia quello Borland e il risultato è simile (in realtà l'una va
male su una malloc, l'altro su un'altra ma sono esattamente dello stesso
tipo:
pippo=(char *) malloc (n)    ). Ma è possibile che un programma corretto
possa non funzionare sotto W9x? non ci sono rimedi? Purtroppo non mi sono
segnato l'indirizzo di memoria in cui cerca di accedere, posso solo dire che
il compilatore microsoft da un errore su Kernel32.dll
Grazie a tutti
Ciao

errore su Kernel32.dll
Questo non significa nulla. Spesso quando finalmente si genera
un GPF (il programma cerca di fare una cosa cosi' assurda che
il sistema operativo si rifiuta) i danni sono gia' stati fatti.
Solo quando sei fortunato il GPF e' generato dalla prima
istruzione che non lavora correttamente.
Un programma e' "corretto" quando con ogni possibile input
all'interno della variabilita' ammissibile genera il risultato
atteso nei tempi previsti. Se e' un programma portabile allora
deve fare questo su tutte le piattaforme previste.
Un programma non si puo' dire che "funziona" solo perche' una
volta, con uno specifico compilatore, uno specifico input ha
fornito qualcosa che a prima vista non sembrava irragionevole.
E' vero che Window95 e' bacato (come e' bacato l'OS390); ma nel
99.9% dei casi l'errore e' nel tuo (e nel mio) codice, non nel
sistema operativo. Questo perlomento deve essere l'approccio.
Andrea
PS:
  Se il programma non e' lunghissimo e non si tratta di
  roba riservata prova a mandarmelo via mail che vedo di
  provare a capire quale potrebbe essere il problema.
  Ovviamente non garantisco nulla (nemmeno di trovare il
  tempo di guardarci :DDDD )
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

Sei certo che l'errore non dipenda dal fatto che in un parte del codice
venga scritta qualcosa erroneamente magari nell'header del vettore allocato
precedentemente? Alcuni compilatori sorvolano questo errore, altri no!
Marco ha scritto nel messaggio ...

Newsgroup: it.comp.lang.c
Titolo: GTK e puntatori

Salve, ho un problema con dei puntatori in un piccolo programma gui
realizzato con le gtk. Premetto che e' la mia prima esperienza con le gtk,
si tratta solo di prove, per vedere come funzionano.
Ho un file, interface.c, dove c'e' la definizione dell'interfaccia gui, e
in cui una delle tante GtkEntry dichiarate viene passata come dato alla
funzione di callback di una voce del menu. La funzione di callback in
questione, che si trova in un altro file, converte il gpointer ricevuto in
un GtkWidget e lo passa ad un'altra funzione, che ci fa qualcosa. O almeno
dovrebbe passarlo. In realta' il programma va in segfault nell'istruzione
di cast. Ecco il codice:
interface.c
GtkWidget *entry_fname;
[cut]
entry_fname = gtk_entry_new ();
gtk_widget_show (entry_fname);
gtk_layout_put (GTK_LAYOUT (layout1), entry_fname, 450, 110);
gtk_widget_set_size_request (entry_fname, 250, 20);
gtk_entry_set_invisible_char (GTK_ENTRY (entry_fname), 9679);
[cut]
// funzione di callback menu' Progetti
g_signal_connect ((gpointer) progetti1, "activate",
                    G_CALLBACK (on_projects_activate),
                    entry_fname);
callbacks.c
void
on_projects_activate(GtkWidget *wid, GdkEvent *ev, gpointer gp){
	printf("Projects activated\n");
	GtkWidget *entry;
// la riga che segue lo manda in segfault
	entry = GTK_WIDGET (gp);
	hide_users(entry);
}
Il messaggio che ottengo da DDD e': 
0xb7a2c72c in g_type_check_instance_cast () from
/usr/lib/libgobject-2.0.so.0 void
Qualsiasi widget passi alla funzione, il risultato e' lo stesso. Idee?

 }
Prova così:
GtkWidget *entry = gp;
dovrebbe ( :) ) funzionare.
Colossus

 dovrebbe ( :) ) funzionare.
grazie per l'intervento, si, ora quella riga la supera, ma va in segfault
dopo, in hide_users() che chiama gtk_widget_hide() sul widget passato... e
non ho ben capito perche' il cast lo mandava in segfault: non si tratta
piu' di un widget? mah...

Newsgroup: it.comp.lang.c
Titolo: GCC sotto l'open source IDE Eclipse: qualcuno lo usa?

Ciao a tutti,
 qualcuno sta usando il GCC nell'ambiente Eclipse (
www.eclipse.org
)?
 Impressioni?
ciao
 Enrico


Puoi spiegarmi un po cosa è ECLIPSE? Sono andato al sito ufficiale ma mi
rompo di tradurre... grz
:-))

Newsgroup: it.comp.lang.c
Titolo: shared memory e strutture dati

Salve,
è possibile attraverso la shared memory condividere strutture dati
complesse(e dinamiche) tipo alberi,liste etc?
Se si come si può fare?Saluti.


Basta linearizzarle e serializzarle ;)