mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: Domanda su array

Secondo me questo codice è fondamentalmente sbagliato, magari qualche
compilatore lo compila, però secondo me nello standard non si può fare e
bisogna usare la Malloc. Giusto?
void funzione (int dim){
int buf[dim];
}
La cosa giusta non dovrebbe essere questa?
void funzione (int dim){
int *buf;
buf=malloc(dim*sizeof(int));
}

Davvero qualche compilatore lo compila?!?!?!!?
Dimmi compilatore, versione e piattaforma perche stento a crederci ;))))
(be.. magari un compilatore strambo di C++!? Noooooo ma che vado a pensare!)
Dome

}
Lo standard C89 non ammette questa forma, che dovrebbe
essere ammessa con il nuovo standard C99.
Quindi, se qualche compilatore lo compila, e' perche' o e'
un'estensione del compilatore (DJGPP/GCC, se non ricordo
male, ti consentono di farlo) oppure e' conforme al nuovo
standard.
-- 
The Follet

 ha scritto nel messaggio
news:3c054402...@news.tin.it...

Si esatto....noi usiamo GCC, ma il problema era far capire a qualcuno che
sta cosa era fondamentalmente sbagliata e che una eventuale correzione da
parte di un prof sarebbe stato di certo segnalato come errore piu che
grave(nonostante lo compilasse).
Fly

 grave(nonostante lo compilasse).
Se ci si attiene allo standard C89, che poi e' quello
ancora piu' utilizzato, effettivamente quella scrittura
non e' accettabile, ma dato che il nuovo standard la
ammette, non e' affatto sbagliata.
Tuttavia, molti compilatori non supportano ancora 
pienamente il C99, quindi quel codice risulta, per 
adesso, non pienamente portabile.
-- 
Posted from  [80.105.34.80] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

nuovo standard.
Ancora di piu'... il GCC 3.0 nasce proprio con lo scopo di fornire una
perfetta compatibilita' con gli attuali standard C (quindi C99) e C++
Penso che sia uno dei primi compilatori a supportarlo
Mox :)

Penso che sia uno dei primi compilatori a supportarlo
Sta di fatto che ha, pero', ancora moltissime carenze
relativamente al C99.
-- 
The Follet

 adesso, non pienamente portabile.
e, cosa piu' importante, alcuni professori magari non sono a conoscenza 
del nuovo standard del C, quindi e' facile che considerino quel codice 
sbagliato.
ciao Anto
-- 
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.6, higher than 98% of all previous test takers.
C Language: 3.32, higher than 79% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it

Newsgroup: it.comp.lang.c
Titolo: array di strutture

Salve, volevo sapere se è possibile fare un array di strutture in questo
modo:
struct index * nominativi[dimensione];
dove dimensione è data da
dimensione = (nome->numero_record) + 1;
la struttura di tipo index è la seguente:
struct index
{
 char nome[TAGLIA];
 int numero_record;
};
Bisogna usare memset per inizializzare la matrice? se si, come deve essere
usata?
Grazie mille
Pinux

 };
struct index *nominativi[dimensione]; crei array di puntatori ad index
for (int i=0; i < dimensione; i++)
   nominativi[i] = malloc(sizeof(struct index));
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/
Newsgroup: it.comp.lang.c
Titolo: Creare cartella

potete dare qualche suggerimento su come
creare una cartella all'interno di un altra cartella?
Vi ringrazio e saluto

 di un altra cartella?
O chiami la funzione standard system("comando"), oppure usi funzioni 
specifiche del compilatore e del sistema operativo che usi.
#include <stdlib.h>
system("md pippo"); // DOS - WINDOWS
system("mkdir pippo"); // UNIX - LINUX
#include <sys/stat.h>
#include <sys/types.h>
mkdir("dir_prova", 0777); // UNIX - LINUX
Sia system che mkdir restituiscono 0 se vanno a buon fine.
Ciao
-- 
enos76


uso djgpp con : _mkdir (variabile stringa1);
creo una cartella, ma crearne un altra all'interno
di stringa1 come si fŕ?
Grazie
Ciao

 crearne un altra all'interno di stringa1 come si fà?
Hai provato:
_mkdir ("cartella\cartella");
Altrimenti con _chdir(stringa); entri in una cartella prima di creare 
l'altra.
-- 
enos76

 _mkdir ("cartella\cartella");
Ricordati di raddoppiare il carattere '\' nelle stringhe:
_mkdir ("cartella\\sottocartella");
ciao
Giacomo

ok, vi ringrazio.
Ciao

 l'altra.
quando faccio chdir(variabile string); il programma si sposta all'interno
della
cartella creata, ma poi non ne esce, il programma si ferma li
in quealla cartella.
come faccio a fare in modo che il programma ne esca?
ho provato con: _chdir("cd.."); ma non funziona
Ciao

 ho provato con: _chdir("cd.."); ma non funziona
Prova system("cd ..") oppure _chdir("..")
-- 
enos76

 Prova system("cd ..") oppure _chdir("..")
La prima non dovrebbe funzionare, perché "cd " cambierebbe la directory 
corrente in una shell che poi, all'uscita dal comando system, viene chiusa.
E.

ho risolto.
Vi ringrazio

Newsgroup: it.comp.lang.c
Titolo: Programma in background...

Su un PC con LINUX ci dovrą essere programma (PL) che dovrebbe stare attivo
in background dall'avvio della macchina al suo spegnimento facendo delle
semplici operazioni cicliche e non.
Il problema č che oltre a svolgere quelle operazioni deve anche soddisfare
delle richieste che gli perverranno via LAN da un altro PC sul quale č
eseguito un altro programma (PW)
Come faccio a mettere il programma PL in ascolto su una porta?
E come faccio a far comunicare PW e PL?

E come faccio a far comunicare PW e PL?
Guardati i manuali di queste funzioni:
socket(), bind(), listen(), accept(), connect(), send(), recv()  (per
la comunicazione via TCP/IP)
fork()   (per poter fare più di una cosa contemporaneamente)
by LjL
ljl...@tiscalinet.it

 E come faccio a far comunicare PW e PL?
nel più semplice dei modi puoi usare inetd ( man inetd ).
oppure leggiti
man 2 select
man 2 bind
man 2 listen
man 2 send
man 2 recv
man 2 read
man 2 write
.. cmq sei ot.. ci sono ng migliori dove rivolgere una domanda simile.
Uno Sbirish molto rtfm.
Newsgroup: it.comp.lang.c
Titolo: libreria per "leggere" file midi

sapate se esiste una qualche libreria per leggere e interpretare i file
midi?
devo scrivere un programma che visualizzi le note su un pentagramma a
partire da un file midi.
Possibilmente avrei bisogno anche dei sorgenti, visto che il programma e'
per un dispositivo embedded.
grazie
-- 
Mastupristi?

partire da un file midi.
Il protocollo MIDI non e' molto complesso, se devi scrivere
un'applicazione ti consiglio di dare un occhio alla
documentazione di base.
Per i sorgenti cerca su 
http://sourceforge.net/
, il piu'
interessante sembra 
http://sourceforge.net/projects/tinyseq
Oppure:
http://www.jdkoftinoff.com/main/Free_Projects/C++_MIDI_Library/

Newsgroup: it.comp.lang.c
Titolo: Output su file

Ciao a tutti,
io ho un programma in C che mi da dei valori e questi valori vorrei salvarli
su un file a parte (per es risultati.dat)
Ho usato le seguenti istruzioni
FILE *fp;
.... bla bla ...
fp = fopen("/home/lavoro/risultati.dat", "w");
if (fp = NULL)
  {
   perror("Ooops, errore creazione file\n");
   exit(1);
  }
..... qui il programma mi calcola i valori (numeri interi) che mi servono e
ora anziche' visualizzarli con printf vorrei venissero salvati sul file
risultati.dat (sono solo dei numeri. Il formato .dat forse non va bene?)
Quindi io ho messo la seguente istruzione
fprintf( fp, "%d\n", n);
fclose(fp);
Credevo che questo fosse corretto, ma ora quando faccio girare il programma,
quando arriva il momento di salvare i valori mi restituisce core dumped.
Se invece di fprintf metto printf (oppure fprintf(stdout, "%d", n) ) tutto
va bene e i valori vengono visualizzati.
Dove e' l'errore?
Grazie mille a chiunque mi rispondera'!
Ant.
--------------------------------
Inviato via 
http://usenet.libero.it

 if (fp = NULL)
^^^^^^^^^^^^^^^^^^
Qui assegni NULL a fp: un po' dura scrivere su un file quando il file
pointer e' NULL :-)
Per evitare questo tipo di errori, potrebbe essere utile scrivere
if(NULL == fp)
   ...
se anche scrivi
if(NULL = fp)
il compilatore si rifiuta di compilare, ma non provoca casini.
C:\>iao Angelo.
P.S. Possibile che il compilatore non dia neanche un Warning a quella
     riga?
-- 
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: Chiarimento su struttura albero

salve ragazzi,
ho una funzione di questo tipo
int del(NODO **ptr, int x);
la funzione cancella un nodo in una labero binario rispettando la proprieta
dell'albero stesso.
In questa funzione viene passato un puntatore a puntatore, ma ho sentito
dire che passando un puntatore di tipo nodo tutto funziona al 99%. Quel'è il
caso particolare per cui se passo un puntatore NODO la funzione da errore?
grazie
Luca

Quel'è il caso particolare per cui se passo un puntatore NODO la funzione da errore?
Non possiamo saperlo, finche' non vediamo il corpo della
funzione.
--
CyberWalkie - walkietalkie(at)
libero.it

 funzione.
la funzione è questa, per eventualita' ho inserito anche la funzione che
cancella il nodo minimo del sottoalbero di destra se questo ha due figli:
void cancella(NODO **rt, int x)
{
NODO *ptr;
if(*rt != NULL)
 if(x < (*rt)->key) cancella(&((*rt)->left), x);
 else
  if(x > (*rt)->key) cancella(&((*rt)->right), x);
  else
   if((*rt)->left == NULL)
    {
    ptr = *rt;
    *rt = (*rt)->right;
    free(ptr);
    }
   else
    if((*rt)->right == NULL)
     {
     ptr = *rt;
     *rt = (*rt)->left;
     free(ptr);
     }
    else
     {
     (*rt)->key = cancellamin(&((*rt)->right));
     return;
     }
}
int cancellamin(NODO **rt)
{
NODO *ptr;
int x;
if((*rt)->left != NULL)
 cancellamin(&((*rt)->left));
else
 {
 x = (*rt)->key;
 ptr = *rt;
 *rt = NULL;
 free(ptr);
 return x;
 }
}
Newsgroup: it.comp.lang.c
Titolo: cmsg cancel <Ddsoc.91226$NR5.58329@fe1.texas.rr.com>

Newsgroup: it.comp.lang.c
Titolo: nome di un puntatore a funzione

Chiedo un piccolo suggerimento: come posso definire un puntatore a
funzione partendo dal suo nome sottoforma di char* ?
Il punto e' che mi trovo a prelevare stringhe da un file, stringhe che
rappresentano appunto nomi di funzioni, e dovrei assegnarle a dei puntatori.
Qualcosa del tipo
struct {
	void *funzione ( void );
} Struttura;
fgets ( buffer, MAX_LENGHT, file );
struttura = ( Struttura* ) malloc ( sizeof ( Struttura ) );
struttura->funzione = buffer;	// ???
E' possibile? Si puo' fare? Come?
Grazie :-)
-- 
Roberto -MadBob- Guido
mail bob4mail***@***
gmail.com
web 
http://madbob.homelinux.com
BrainTop Project maintainer - 
http://braintop.sf.net

 Grazie :-)
Spero di essere stato sufficientemente chiaro.
Saluti,
Marco

 
D'oh!
Vabbe', pazienza... In ogni caso, forse riesco a salvarmi comunque: gia'
per altri motivi avevo intenzione di usare dei moduli da caricare con
dlopen, che possono essere appunto richiamati partendo semplicemente dal
loro nome.
Questa e' l'ulteriore motivazione che mi serviva per decidermi ad
intraprendere tale strada ;-).
Grazie comunque per l'interessamento...


 dlopen,
'dlopen' può anche risolvere i simboli definiti nel programma principale. 
Consulta la manpage ed eventualmente chiedi su it.comp.os.linux.development.
(it.comp.lang.c non è la sede appropriata per discutere di 'dlopen'.)
Max
Newsgroup: it.comp.lang.c
Titolo: Socket (Berkeley)

Ciao a tutti e grazie per le eventuali risposte.
Premetto che sotto Linux non ho configurato un modem e quindi non posso
accedere alla rete.
Scrivendo un client molto semplice:
1) creo una socket: s = socket(AF_INET, SOCK_STREAM, 0)
2) tento di estrarre le informazioni relative ad un host:
 struct hostent *hp;
hp = gethostbyname(localhost)
la cosa strana č che tutto funziona correttamente, nel senso che la
chiamata mi
mette nella struttura hp tutte le informazioni come l'alias e l'official
name of host...e le altre come la lunghezza in
byte dell'indirizzo IP.
Ho un file /etc/host fatto circa cosě:
127.0.0.1    localhost pippo1
127.0.0.2   localhost pippo2
sembra corretto in quanto facendo un bel ping (o telnet) a pippo1 o
pippo2 si conette a 127.0.0.1.
Ho anche provato a modificare l'official name e lo stesso contina ad
essere vero, anche cambiando l'IP
della macchina locale.
Il problema č che la chiamata gethostbyname mi ritorna solo 1 alias
(pippo1 e non anche pippo2) e, la cosa peggiore, č che di prendere l'IP
dell'host localhost
non ne vuole sapere affatto, cosě che la successiva e necessaria
chiamata connect a quell'host fallisce (invalid argument)....qualcosa mi
sfugge.....cosa?
Premetto che ci ho smanettato parecchio e che non riesco (ovviamente) a
venirne a capo.
Grazie infinite a tutti....
Ing. Cristiano Palazzo
A buon rendere e grazie a tutti.

 dell'host localhost non ne vuole sapere affatto, 
L'ultima parte non mi è molto chiara...
_Credo_ che gethostbyname() ritorni la prima entry di /etc/hosts che
soddisfa il nome richiesto, per cui ottieni solo quella.
Una possibilità è quella di scandire tutto il file:
 
[root@fokhouse /tmp]# cat getinfo.c
#include <stdio.h>
#include <string.h>
#include <arpa/inet.h>
#include <netdb.h>
void print_info(struct hostent *hostinfo)
{
        char **names = hostinfo->h_aliases,
             **addrs = hostinfo->h_addr_list;
        puts("---\nAliases:");
        while (*names)
                printf("\t%s\n", *names++);
        puts("Addresses:");
        while (*addrs)
                printf("\t%s\n", inet_ntoa(*(struct in_addr *)*addrs++));
}
int main(void)
{
        struct hostent *hostinfo;
        sethostent(1);
        puts("Results for host \'localhost\':");
        while ((hostinfo = gethostent()))
                if (strcmp(hostinfo->h_name, "localhost") == 0)
                        print_info(hostinfo);
        endhostent();
        exit(0);
}
[root@fokhouse /tmp]# ./getinfo
Results for host 'localhost':
---
Aliases:
        localhost.localdomain
Addresses:
        127.0.0.1
---
Aliases:
        pippone
Addresses:
        127.0.0.2
[root@fokhouse /tmp]# grep localhost /etc/hosts
127.0.0.1       localhost       localhost.localdomain
127.0.0.2       localhost       pippone
[root@fokhouse /tmp]#
Nota che in effetti così esamini tutto il database degli host (che 
magari è gestito da un nameserver) il che può essere pesante.
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: Rsa

Ciao,
Stò eseguendo delle prove con openssl,
stò criptando un file con l'algoritmo rsa (naturalmente con la chiave
pubblica) poi lo
decifro (con la chiave privata), fini a qui tutto OK.
Qualcuno mi sà spiegare perche se cifro lo stesso file più di una
volta
usando la stessa chiave pubblica il risultato (il messagio cifrato) è
sempre diverso?

 sempre diverso?
Probabilmente viene aggiunta della informazione casuale proprio per 
ottenere questo comportamento. Se il risultato fosse sempre lo stesso, 
io potrei sapere se un certo messaggio cifrato, è proprio un messaggio 
che io ipotizzo. Mettiamo per esempio che io sappia che qualcuno manda 
un messaggio cifrato contenente il messaggio SI oppure il messaggio NO. 
Provando entrambi i casi potrei scoprire il contenuto del messaggio. 
Invece aggiungendo dell'informazione casuale, non posso in nessun modo 
sapere quale dei due messaggi è stato spedito.
E.


Grazie mille.
-- 
Cordialmente, luca


A Pupazzo ! .. t'ho spiegato tutto davanti l'ascensore in ufficio ..
ancora non c'hai capito una mazza ? ... ;)


E poi e' pure il newgroup sbagliato, comunque spizzati questa pagina :
http://en.wikipedia.org/wiki/Key_strengthening
e guarda il concetto si salt ( o nonce che non ho capito se e'
esattamente la stessa cosa ) , quello secondo me e' il motivo per cui
cambia il risultato della cifratura ...

 cambia il risultato della cifratura ...
Sono termini usati in contesti diversi. Il nonce (o nonce word) e'
un identificativo univoco generato di volta in volta e si usa (ad
esempio) nei protocolli di key exchange per riuscire a distinguere
tra una risposta ed una sua (eventuale) ripetizione tra le parti
coinvolte nello scambio di chiavi.
Il salt lo si usa (sempre ad esempio) per aumentare la "casualita'"
della generazione dell'hash di una password. Spesso non e' univoco,
ma ha una ripetizione periodica.
HTH
C:\>iao Angelo

 un identificativo univoco generato di volta in volta e si usa (ad
Perfetto .. ora e' chiaro.
Thanks
Newsgroup: it.comp.lang.c
Titolo: Script per accensio computer

Ciao a tutti,
vorrei provare a realizzare uno piccolo script che pinghi una scheda di rete 
e se essa non risponde al ping lo script le invia dei magic paket per 
accendere il pc.
Secondo voi è difficile? non ho piu di 2 o 3 gg per provare questa cosa 
(dato che poi inizio i corsi all'universita).
Esistono cose cosi gia fatte?
Consigli? 


A parte che è OT...
Ma poi, se la scheda non risponde al ping come fa a rispondere ai
cosidetti magic packets ??
E come fa il pc a ricevere e processare i magic packets se il pc è
spento ??
Secondo me non è difficile, è proprio impossibile

Apparte che non è OT perchè lo script lo voglio fare in C.
se io ho un pc A SEMPRE ACCESO, ed un pc B NON SEMPRE ACCESO ==> dal pc A 
posso eseguire lo script che interroga il pc B.
Sai cosa è il WOL? Da quello che scrivi non mi sembra.
O forse non mi sono spiegato bene io. Puo anche essere.
In ogni caso cio che voglio fare è tranquillamente realizzabile chiedevo 
consigli a qualcuno di piu esperto di me. 

 Secondo me non è difficile, è proprio impossibile
Cosi' poteva evitare di parlare Zarathustra.

 Secondo voi è difficile?...
No. 
In rete c'e` moto materiale sul wake on LAN

 wrote:

Mah, io andrei a vedere il source code del ping di linux (fatto
prbabilmente in C), cosi vedi come fa a fare il ping, poi immagino sia
abbastanza semplice implementare un timeout, e nel caso mandare fuori
il magic packet. Occhio che il magic packet credo lo devi implementare
a livello di ethernet address, non di IP.
Ciao Jack


Probabilmente ho capito male, ma pensavo che non avessi un pc sempre
acceso...Questo è un altro problema, un po' diverso dall'altro

si, il magic paket va implementato a livello di MAC.
Ora provo a smanettare un po e vediamo cosa salta fuori
Newsgroup: it.comp.lang.c
Titolo: E' possibile?

Se scrivo
..........
system("start  excel.exe");
......
salvo, compilo... eseguo...
mi compare la finestra di excel.
Se voglio poi aprire il menů file  di detta finestra,
 debbo utilizzare il mause o la tastiera.
Come potrei fare, per ottenere la stessa cosa,
mediante istruzioni inserite nel programma da
compilare?
E per poter scrivere dei dati su una cella?
O forse č cosa impossibile per qualsiasi
programma?
Certo se fosse possibile si potrebbe configurare
un'applicazione windows mediante un programma....
E' troppo?
Ciao
Angelo.

programma?
<OFF TOPIC>
Excel, come tutti i programmi del pacchetto Office, implementa al suo
interno un "server di automazione OLE", che altro non e' che un
oggetto COM.  Con l'interfacciamento di tale oggetto da parte delle
applicazioni, e' possibile pilotare Excel, come se fosse parte
integrante della propria applicazione.
Per esempio, con Word e' possibile invocare dalla propria applicazione
il controllo ortografico di un proprio testo, ecc... ecc...
Trattiamo un eventuale approfondimento di questo tema su
it.comp.programmare.win32 (approfittane subito, perche' c'e' Alex
Martelli di passaggio, che dispensa consigli davvero preziosi).
</OFF TOPIC>
--
Walkie...@Libero.It (ICQ# 8143647)
Newsgroup: it.comp.lang.c
Titolo: maple

Qualcuno sa dove posso scaricare una
demo funzionante,
forse non e' proprio il news adatto ma
se uno sa la risposta non e'
una grossa perdita di tempo.
By grazie.

 una grossa perdita di tempo.
Già, ma immagina se facessero tutti come te. Sarebbe una sfilza
interminabile di messaggi off-topic ai quali d'altronde difficilmente si
trova risposta nel ng sbagliato.
EMG
Newsgroup: it.comp.lang.c
Titolo: quale  e' il migior comipaltore per il c asci standar ?

salve, sto iniziando a studiare il c edevo ancora procurarmi un compilatore.
 e avrei le seguenti richieste da fare
 quale e' il miglior compilatore free per il c standar asci?
e,qual'e' il migliore che si possa trovare in vendita?
e poi vi chiedo un consiglio. secondo voi, e' meglio abituarsi a
programmare con un ambiente di sviluppo ide, o sensa?

 programmare con un ambiente di sviluppo ide, o sensa?
Devi fare interfacce grafiche o solo delle funzioni?
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Devi fare interfacce grafiche o solo delle funzioni?
veramente , sono agli inizi, dovrei prima imparare il c.
pero' mi domandavo, come era meglio abituarsi a programmare, ad esempio su' 
un libro per il java, ho letto, che e' meglio abituarsi a programmare il 
java sensa ide, perche' cosi facendo, non ci si legava con nessun sistema 
operativo e ide  particolare. e quindi si poteva in seguito programmare in 
modo per cosi dire " universale". vorrei sapere se' questo poteva valere 
anche per il c? 

 anche per il c? 
Guarda, secondo me è bene partire con:
- un editor di testo (che magari ti faccia un minimo di controllo 
sintattico);
- un compilatore richiamabile da riga di comando;
così da poter "toccare con mano" quello che succede in compilazione, e 
che poi viene "nascosto" dall'uso di un qualche IDE (che può essere 
consigliabile quando hai a che fare con progetti complessi).
Dunque, se sei sotto Windows ti consiglio di installare:
- MinGW come compilatore;
- Vim come editor (ma va bene anche notepad++);
Se sei sotto Linux dovresti avere già il gcc (compilatore) e come editor 
puoi utilizzare un qualsiasi editor testuale (Vim va più che bene anche 
se può risultare esteticamente sgradevole).
Ciao,
Giulio
-- 
OnAir:

Vim come editor (ma va bene anche notepad++);
senti, siccome ho sentito parlare molto bene del gcc,  non e' che
mi converebbe abituarmi a usarlo,  magari installando sul mio pc
il cygwin, che e' un simulatore di linux?. cosi, imparerei anche
nel caso passassi in futuro su' linux?. o pensi che non sia' il caso?
altra domanda, ma il gcc cosa e' un compilatore con un editor dentro
o solo comipilatore?

 o solo comipilatore?
Solo compilatore (e liker e robaccia simile ;-) ).
Ciao,
Giulio
-- 

trovo proprio bene con la mia Debian!).
solo per curiosita, vorrei sapere se' sul mio pc, volendo, potrei
installare questa macchina virtuale. io ho un pentium 4 a 3,4 ghz
un giga di ram. sai se il mio processore e le caratteristiche tecniche
mi consentirebbero tale opportunita' ?
ciao

 mi consentirebbero tale opportunita' ?
devi programmare o farci girare 4 giochi di ultima generazione?
t'ho risposto tra le righe.
coals

 mi consentirebbero tale opportunita' ?
VMWare con una Debian virtualizzata dovrebbe girarci alla grande! Un 
tip: quando configuri la macchina virtuale ricorda di dargli la metà 
della RAM che hai fisicamente.
Ciao e buon lavoro,
Giulio
--
Newsgroup: it.comp.lang.c
Titolo: [OT]Domanda curiosàsu  K&R

Salve a tutti, vorrei porre , una domanda curiosa.
Quante copie sono state vendute nel mondo
del K&R?
Ringrazio tutti
Ciao

PINGatPONG.tic wrote:

Direi tante visto che è stato tradotto in italiano :))
Ciao ciao 
VV
-- 
Valerio Vaccaro aka TulipAn
http://vaccaro.altervista.org

 Ciao ciao   , ...anch'io ciao ciao :-))



a proposito dove lo si puo` ancora trovare?
a causa della chiusura della jackson in libreria e` scomparso
e non si conosce la politica di chi ne ha acquistato i diritti
ovvero se intenda distribuirne una nuova versione
io ho la versione originale
ma mi secca doverla prestare agli amici
preferirei che si tornasse a vernderla liberamente

 ha scritto nel messaggio
news:417c...@x-privat.org...

Dovrebbe essere questo:
Il linguaggio C. Principi di programmazione e manuale di riferimento. Nuova
edizione italiana | 1ª ed. | Italiano
Normalmente spedito in 3-5 giorni lavorativi
Brian W. Kernighan, Dennis M. Ritchie
| Brossura | Pearson Education Italia  | 2004 | ISBN: 887192200X
Prezzo BOL: Euro 25,00
Ciao
Giuseppe

 Giuseppe
grazie
provvedero` a chiedere in libreria
devo dire pero` che sia nella mia citta` cha a Parma dove sono andato per
vari motivi
in diverse librerie
facendo una ricerca nei loro databases non emergeva nessuna pubblicazione di
K&K in vendita
per questo ho avanzato tale perplessita`
ora effettuero identica richiesta allegano il codice ISBN e aspettiamo le
relative risposte
saluti



io l'ho (ri)visto sabato scorso allo SMAU. ero nello stand della
mondadori ma dentro c'erano anche sezioni di altri editori tipo mc
graw hill, addison etc. etc. e non ricordo con precisione su quale
scaffale era...
Andrea
----
http://space.tin.it/io/andrea.fa

[...]
..., guarda, l'ho acquistato sul sito :
www.librinformatica.it
  3 anni fà.
Non sò se e ancora disponibile.
Ciao


IMHO Se lo ordini online ti risparmi un sacco di strada e tempo :)
Ciao
Giuseppe

 Direi tante visto che è stato tradotto in italiano :))
E che c'è di strano? L'italiano è una delle lingue più diffuse al mondo (la
20ª, se non sbaglio, che non è mica poco).
Il K&R è stato tradotto pure in albanese, cinese, coreano, danese, ebraico,
finlandese, francese, giapponese, greco, norvegese, olandese, polacco,
portoghese, rumeno, russo, serbocroato, slovacco, sloveno, spagnolo,
svedese, tesesco, turco, ungherese, oltre alle versioni braille e audio per
i ciechi.
Sulla home page del libro si possono pure vedere le copertine delle varie
traduzioni: 
http://www.cs.bell-labs.com/cm/cs/cbook/index.html
 (una più
brutta dell'altra: si salva solo quella norvegese con gli iceberg; o forse
sono onde?).
--
Cingar
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/
Newsgroup: it.comp.lang.c
Titolo: Info librerie

Esiste qualche sito dove è possibile trovare informazioni sulle varie
librerie disponibili.
Grazie per la rapida (lo spero risposta)

 librerie disponibili.
MLO@cmssun2 12 $ ls -F /usr/lib/lib* | egrep -v @$ | wc
     79      78    1628
MLO@cmssun2 13 $ ls -F /usr/openwin/lib/lib* | egrep -v @$ | wc
     53      52    1315
MLO@cmssun2 14 $ ls -F /opt/gnu/lib/lib* | egrep -v @$ | wc
     22      22     571
MLO@cmssun2 15 $ ls -F /usr/local/lib/lib* | egrep -v @$ | wc
      5       5     139
Sotto Solaris 2.5, /usr/lib contiene 79 librerie; 53 si trovano in
/usr/openwin/lib; io ne ho istallate altre 27.  Generalmente, ogni
libreria ha una man page (per un totale di svariati megabites di
informazioni).
Non puoi essere _leggermente_ piu' specifico (tipo: che ambiente e che
sistema operativo usi :-) ?
-- 
Maurizio Loreti                      
http://wwwcdf.pd.infn.it/~loreti/mlo.html
Un. of Padova, Dept. of Physics - Padova, Italy          
lor...@padova.infn.it

Grazie per la rapida (lo spero risposta)
Dunque, utilizzando Outlook Express, suppongo che ti interessi sotto
DOS/Windows.
Se fosse cosi', potresti visitare il sito 
www.delorie.com
 dove c'e' la
trattazione di tutta la libreria libc del DJGPP e dove ti viene
spiegato per filo e per segno l'utilizzo delle funzioni standard.
Andrea Laforgia

Normalmente uso Windows, ma da un po' mi barcameno in Linux.

Newsgroup: it.comp.lang.c
Titolo: Come intercettare un INT?

   Ciao ragazzi, potete aiutarmi?!
  Dovrei intercettare l'INT13H quando il sistema la chiama per intervenire con una piccola  routine. Come fare in C/C++ sotto WIN32 o in ASSEMBLER 80x86 in DOS?
 Il problema sarebbe questo: dovrei smistare il salvataggio che un programma in DOS esegue su disco A: su disco C: o altro disco eventualmente da poter decidere, perche' il palmare che ho non dispone di floppy. Potete darmi una mano?
     Grazie.
          _________  
         //-------\\   ___//____   //    //
        //        //     //  ____ //    //____
       //________//___  //  //  \\/    ///   \\
      //--------//___\\//  //___//____//\\_____
     //        //      \\_//    \\            \\
    //_________\\___//___//______\\___________//
 
e-pe...@iname.com
A FREE web-based e-mail service brought to you by the PC World Technology Network.
Get your FREE account today at 
http://www.myworldmail.com
--
Posted from [209.1.236.44]
via Mailgate.ORG Server - 
http://www.mailgate.org

  Il problema sarebbe questo: dovrei smistare il salvataggio che un
programma in DOS esegue su >disco A: su disco C: o altro disco eventualmente
da poter decidere, perche' il palmare che ho non >dispone di floppy. Potete
darmi una mano?
Ecco un rapido esempio:
#include <dos.h>
#define INTR 0X13
void interrupt ( *oldhandler)();
void interrupt handler()
{
   asm {
   cmp DL, 0             // DL == 0  --> A: ?
   jnz NonA:
   mov DL, 2             // Faccio scrivere su C:
   };
   NonA:
   oldhandler();
}
int main(void)
{
   oldhandler = getvect(INTR);          // Salvo il vecchio vettore di
interrupt
   setvect(INTR, handler);                 // Installo il mio vettore di
interrupt
   /* Codice programma */
   /* Può anche essere un TSR */
   setvect(INTR, oldhandler);          // Setto il vecchio vettore di
interrupt
   return 0;
};
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
ICQ: 42227764
---------------------------------------------------------------------------

routine. Come fare in C/C++ sotto WIN32 o in ASSEMBLER 80x86 in DOS?
Devi specificare che compilatore utilizzi.
(un consiglio : ridimensiona la firma ad una misura più
"netiquettiana" ;)
--
Andrea Laforgia        (
andrea_...@bigfoot.com
)
Newsgroup: it.comp.lang.c
Titolo: creazione di numeri casuali

 
          Per creare due numeri che servono da indici in una matrice nxn, mi è stato
detto di usare le seguenti istruzioni:
     v = (double) n - 1;
    r = (int) (( v * rand()) / (double) RAND_MAX);
    c= (int) (( v * rand()) / (double) RAND_MAX);
il problema è il seguente: i numeri vengono generati ma non viene mai presa
in considerazione l'ultima riga e l'ultima colonna della matrice. Per quanto
nei crei variando anche il seme non va a prendere quelle posizioni.
Poichè chi me le ha consigliate usa linux è possibile che questo sistema
funzioni solo con linux. Se così fosse quale è il corrispondente in windows?
Premetto che mettendo v = n viene sfondata la matrice...
Grazie in anticipo a chi risponderà
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

     c= (int) (( v * rand()) / (double) RAND_MAX);
questo metodo è errato....
      int r,c; 
      r = rand()/(RAND_MAX+1.0)*n;  // 0 <=r<= n-1
      c = rand()/(RAND_MAX+1.0)*n;  // 0 <=c<= n-1
-- 
Horst


Ok cosě mi crea i numeri e funziona. Tuttavia ho un altro problema che
necessita di una premessa. La matrice č una matrice di adiacenza nodi nodi
per rappresentare un grafo. In pratica gli indici della matrice [r] [c]
indicano rispettivamente il nodo in entrata e il nodo in uscita di un arco e
la posizione [r] [c] nella matrice va a contenere il peso dell'arco. Se
produco un grafo di 1000 nodi e 5000 archi, usando le istruzioni che mi hai
indicato esce quasi sempre non fortemente connesso. Dipende dal fatto che
5000 archi sono pochi o dalla distribuzione degli archi che nn č abbastanza
eterogenea? Nel secondo caso come faccio a rendere la distribuzioe degli
archi piů omogenea generando r e c a caso?


 omogenea generando r e c a caso?
E` probabile (ma non sono sicuro) che il generatore usato da rand() non sia
adeguato. Prova questo (il codice è C++, ma immagino che riesci ad adattarlo
in C con facilità):
typedef unsigned long ULONG;
ULONG LCG(void)
{
 static ULONG y=time();
 y=y*2147001325L+715136305L;
 return y;
}
// Maximally-Equidistributed Collision-Free combined LFSR
ULONG lfsr113(void) // Periodo ~2^113 ~10^34
{
 static ULONG z1,z2,z3,z4,RISE=1; ULONG b;
 if(RISE) {
  RISE=0;
  do z1=LCG(); while(z1<2);
  do z2=LCG(); while(z2<8);
  do z3=LCG(); while(z3<16);
  do z4=LCG(); while(z4<128);
 }
 b=((z1<< 6)^z1) >> 13; z1=((z1 & 4294967294UL) << 18) ^ b;
 b=((z2<< 2)^z2) >> 27; z2=((z2 & 4294967288UL) <<  2) ^ b;
 b=((z3<<13)^z3) >> 21; z3=((z3 & 4294967280UL) <<  7) ^ b;
 b=((z4<< 3)^z4) >> 12; z4=((z4 & 4294967168UL) << 13) ^ b;
 return z1^z2^z3^z4;
}
// Ritorna un numero casuale da 0 ÷ n-1
ULONG CASU(const ULONG n)
{
 const ULONG S=4294967296./n,X=S*n;
 ULONG x; do x=lfsr113(); while(x>=X);
 return x/S;
}
r = CASU(n);
c = CASU(n);
Così facendo, ottieni r e c perfettamente generati. Se il risultato fosse
ancora "non fortemente connesso" sai che il problema non risiede nella
generazione di r e c, ma altrove.
Cristiano

 in C con facilità):
In C++?!? A me sembra C puro e semplice, magari poco leggibile, ma C.
Saluti,
Marco
-- 
To email me, remove the no_ and _spam from my address.
Newsgroup: it.comp.lang.c
Titolo: Disegno figura

Salve a tutti,
sono appena agli inizi con il C e dovrei scrivere un programmino che disegni
questa figura:
**********
  *********
    ********
      *******
        ******
          *****
            ****
              ***
                **
                  *
Ho scritto questo codice, solo che invece di eseguire il ciclo while degli
spazi e quello degli asterischi uno dopo l'altro, esegue il while degli
spazi una sola volta, e poi 10 volte di seguito solo quello degli
asterischi. Io vorrei invece che eseguisse il while degli spazi, poi una
volta il while degli asterischi, aumentasse cont3 e ricominciasse dal while
degli spazi.
Di seguito il codice:
cont1 = 10;   /* Ciclo degli spazi */
while (cont1 >= 1)                 {
spaz = 10 - cont1;    /* 0, 1, 2, 3... */
      cont2 = 0;
      while (cont2 <= spaz) {
      printf (" ");
      cont2++;              }
      cont3 = 0;         /* Ciclo degli asterischi */
      while (cont3 < 10) {
      ast = 10 - cont3;   /* 10, 9, 8... */
         cont4 = 1;
         while (cont4 <= ast) {
         printf ("*");
         cont4++;              }
      cont3++;
      printf ("\n");      }
cont1--;                           }
Grazie
Daniele

 
mi sembra che tu ti stia complicando inutilmente la vita.
Tra l'altro in questo caso il numero di iterazioni che devi fare
e' noto a priori, quindi il ciclo for potrebbe essere preferibile
al ciclo while.
Analizziamo il disegno:
si parte con una riga di N (diciamo N=10) asterischi,
preceduti da 0 spazi.
poi ogni volta si stampano 2 spazi in piu' della volta precedente
e un asterisco in meno.
se numeriamo le righe da 0 a N-1,
la riga i-esima sara' composta da 2*i spazi e da
N-i asterischi
quindi
for (i=0; i<N; i++)
{
   for (j=0; j<i; j++) printf("  ");   // due spazi alla volta
   for (j=0; j<(N-i); j++) printf("*");
   printf("\n");
}
ciao,
g.

 }
-- 
§       ZeD       §
§ Up da 4:40 ore  §
§   26/05/2004    §
§ S. Filippo Neri §

 questa figura:
[cut]
In effetti mi sono andato ad incasinare con il while quando con il for è
molto più chiaro. Tra l'altro l'esercizio chiedeva di disegnare varie figure
simili a questa, per cui ho riscritto le altre parti del programma togliendo
i while ed usando i for.
PS: dato che ho appena inizato con il C, aspettatevi di sicuro altri post
"intelligenti" come questo.. :-).
Grazie ancora a tutti.
Daniele
Newsgroup: it.comp.lang.c
Titolo: Modulo di due Long

Ciao a tutti,
ho letto le faq ma non ho trovato nulla al riguardo:
in c come faccio a trovare il modulo tra due numeri di tipo long?
non posso usare % perché agisce con gli int e fmod e fmodl non producono
risultati decenti.
Che cosa mi consigliate?
Vi ringrazio anticipatamente, sono bloccato per questa stupidata in un
progetto importante.
giovann...@libero.it

 Che cosa mi consigliate?
Se ti riferivi veramente a float, potresti prima convertirli in intero e
poi prenderne il modulo.
EMG

e fmod e fmodl non producono risultati decenti.
Tutto quello che ha a che fare con i double e' approsimato.
ciao

non posso usare % perché agisce con gli int e
Tutto cio' che funziona con gli int, funziona anche con i long, in
quanto i long non sono altro che degli int "piu' grandi".
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
---------------------------------------------

: Tutto cio' che funziona con gli int, funziona anche con i long, in
: quanto i long non sono altro che degli int "piu' grandi".
Non sempre, spesso:
sizeof(char) = 1
sizeof(short int) = 2
sizeof(int) = 4
sizeof(long) = 4
sizeof(long long) = 8
ciao!
antriez

 quanto i long non sono altro che degli int "piu' grandi".
Non e' sempre detto, dipende dall' implementazione. In molti casi hanno
la stessa dimensione.
Ivan Molella

Vi ringrazio tutti per le risposte.
Effettivamente mi sono fatto traviare da un problema in un'altra parte del
programma e per questo ho ritenuto erroneamente che l'operatore % non
lavorasse con i long.
Di nuovo grazie per le risposte,
giovann...@libero.it

Non sempre, spesso:
vedi risposta a Molella


la stessa dimensione.
Questo e' un altro discorso e conosco benissimo i problemi derivanti
dalle diverse implementazioni.
Io ho detto : "tutto cio' che FUNZIONA con gli int, FUNZIONA ANCHE con
i long", il che significa che un'operazione fatta sugli int transita
per via naturale sui long.


 sizeof(long long) = 8
Infatti funziona, anche se dà risultati diversi :-)
--
Alessandro Monti

Si lo so che tutto cio che va bene x gli int transita sui long,il mio
appunto era sulla dimensione dei 2 tipi che non sempre differisce.
Ivan Molella

appunto era sulla dimensione dei 2 tipi che non sempre differisce.
Quasi sempre differisce ;)

Newsgroup: it.comp.lang.c
Titolo: C#: Assembly e metadata

Salve a tutti!!!
Mi sto avvicinando da poco a C# e consultando un manualone sull'argomento mi 
sono trovato di fronte al concetto di Assembly.
Il manuale recita:
Un'importante caratteristica degli assembly è che contengono metadata che 
descrivono i tipi e i metodi definiti nel codice corrispondente.
Scusate la domanda: Ma cosa sono i metadata?
Ho provato a fare una ricerca su internet, ma naturalmente non trovato 
risposte chiarificatrici.
Se non ho capito male l'assembly è il file EXE o il file DLL generato dalla 
compilazione, oppure un gruppo di file (al massimo un EXE e tante DLL) tra 
cui ci sarà un file principale che contiene le descrizioni degli altri file 
che compongono l'assembly.
Intuisco che metadata è la parte di EXE o DLL che descrive il contenuto del 
file. Ma si tratta solo di un'intuizione. E' giusta o no?
Grazie
Cricca
PS: Esiste un newsgroup più specifico per C#?

 PS: Esiste un newsgroup più specifico per C#?
Spulcia un po' fra i NG che contengono "csharp" (o roba simile) nel nome.
Ciao.

 PS: Esiste un newsgroup più specifico per C#?
it.comp.lang
microsoft.public.it.dotnet.csharp
Luca
-- 
Home: 
http://kronoz.cjb.net
#include <stdio.h> 
int main(void) {printf("\t\t\b\b\b\b\b\b");
printf("\t\t\b\b\b\b\b\b");return 0;}
Newsgroup: it.comp.lang.c
Titolo: Copia speculare di hdd a hdd in ms-dos

Cortesemente potreste indicarmi, come posso fare una copia speculare, di un piccolo hdd da 5mb adebito ad uso industriale, su un altro hdd; senza il rischio di perdere informazioni utili e  che sia in grado di farmi ripartire l'apparecchiatura (di tipo a controllo numerico). Grazie.N.B devo avere la garanzia assoluta che tutto vengo copiato talquale.
-- 
BIANCA 
------------------------------------------------------------------------
View this thread: 
http://www.itsistemi.net/viewtopic-772690.html
Inviato via 
http://www.itsistemi.net

 devo avere la garanzia assoluta che tutto vengo copiato talquale.
la tua domanda riguardo il linguaggio c e'...?
comunque, risposta rapida: cd live di linux (ad esempio una sysresqcd) + dd
-- 
Evangelion e' la storia yaoi di un angelo che vuole portarsi a letto un
ragazzo che si intreccia con la storia di un maturo professionista con il
complesso delle lolite... fatte in casa.
                                                            -- Lennier, 2006

[...] come posso fare una copia speculare, [...]
XCOPY A: B: /X /E /K /H /R /O

La copia speculare dell'hdd la devo fare in ms-dos.


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

Cosa sono? e a cosa servono?

 Cosa sono? e a cosa servono?
---------->  it.comp.lang.c++
--
Cingar
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


d'oh... pensavo che anche il c li supportasse :-)



Se guardavi un attimino il tuo libro di C te ne saresti accorto :)

 d'oh... pensavo che anche il c li supportasse :-)
Nisba.
Però, in pratica, siccome *quasi* tutti i compilatori al giorno d'oggi
sono C/C++, nessuno ti vieta di compilare in modo C++ e usare solo i
template. (Quel "quasi" comporta però di rinunciare alla portabilità verso
compilatori puramente C, e persino verso vecchi compilatori C++ senza i
template.)
Ma, francamente, i template mi sembrano una cosa utile solo in
concomitanza con le classi del C++: se si tratta di una semplice funzione
che deve lavorare su tipi diversi, tanto vale scriverne due o tre versioni
diverse.


 concomitanza con le classi del C++:
Più che altro, direi che i template sono veramente utili in combinazione 
con l'overloading. Tra l'altro, se ci pensi, senza template l'overloading 
ha sostanzialmente una funzione estetica.
Max
Newsgroup: it.comp.lang.c
Titolo: assegnamento valori grandi

salve,
voglio assegnare il valore 8.335*10^10 alla variabile uint64_t
energia_alla_2_64.
C'è una maniera per evitare di scrivere:
energia_alla_2_64=83350000000; ?
C'è una maniera per impiegare una notazione esponenziale, e cioè qualcosa
del tipo:
energia_alla_2_64=8.335*e10; ?
Ho provato a scrivere il codice che segua:
************************************************************
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
main()
{
uint64_t energia_alla_2_64, var_energia_virgola_fissa_64;
energia_alla_2_64=83350000000;
}
************************************************************
Perchè mi dà l'errore: "integer constant is too large for long type"?
Come posso evitare questo errore?
grazie,
adriano

 Come posso evitare questo errore?
Scrivi:
83350000000LL
E.

 energia_alla_2_64=8.335*e10; ?
8.335E10
Gg

grazie,
adriano

Newsgroup: it.comp.lang.c
Titolo: Grafica in C

Ciao a tutti!
Volevo chiedere se qualcuno conosceva il modo per creare un pgm che
fosse in grado di disegnare sul desktop.
In pratica volevo creare uno script che mi permettesse di far apparire
dei disegni (anche semplici tipo gruppi di pixel colorati ) sul
desktop di tanto in tanto, senza nessuna azione da parte dell'utente.
La mia idea era uno script che lavorasse in background.
Qualcuno sa aiutarmi? conoscete un metodo per poterlo fare (è
indifferente sia in ambinete Linux che Windows)?
Ciao ciao!!!!


Non e' una cosa banale. Se vuoi disegnare sul desktop in linux puoi
utilizzare QT
http://it.wikipedia.org/wiki/Qt_(toolkit)
.

 wrote:

Non ha molto a che fare con il C.
<OT>
Carino. Su Linux io chiamerei in crojob xv.
xv prende come input i pgm e ha un'opzione per "autochiudersi" dopo N
secondi (-wait), oltre a milioni di altre opzioni per fare più o meno
qualsiasi cosa abbia a che fare con le immagini.
Su windows non so - magari esiste qualche programma simile.
Ciao!
P.S. Visto che mi hai dato l'idea uno scriptino l'ho scritto, ma l'ho
anche tolto perchè è abbastanza fastidioso dopo un po'. In ogni caso
su linux è questione di 10 minuti e 5 righe in bash. (ti anticipo che
le mie opzioni per xv sono -nod (niente bordi di finestra) -ge
(imposta la geometria, ovvero dimensione e posizione sullo schermo) e
il -wait (come sopra), mentre i file sono scelti a caso da una lista
in .txt (generata una volta con il find e sistemata a mano), la cui
riga viene scelta con l'apposita variabile bash $RANDOM - non aggiungo
altro visto che it.comp.lang.c è il posto meno adatto a parlare di
questa cosa, credo).
</OT>
Newsgroup: it.comp.lang.c
Titolo: chiarimenti sul funzionamento del compilatore Cygwin

MI chiamo Sandro e vorrei imparare a programmare in C, a tal proposito ho
scaricato da internet il programma compilatore
Cygwin. Arrivati a questo punto però non so come farlo funzionare.
Pregherei qualche persona gentile se mi può dare indicazioni utili,
per farlo operare, saranno gradite indicazioni utili su eventuali ma-
nuali o libri utili su tale argomento.
In attesa di una gentile risposta porgo i miei distinti saluti.

Sandro Rapto wrote:

io lo uso ..........
se lo hai installato e lanciando il collegamento che hai sul desktop ; 
ti appare una finesta simil dos con un prompt ....$ 
sei a posto
se non hai confidenza con gli editor Unix
puoi tranquillamente usare notepad di windows 
$cd /home
di cygwin
equivale a c:\cygwin\home [*] di windows
a questo punto crei con notepad il tuo hello.c e lo salvi in quella 
directory [*] 
fai :
$gcc hello.c
che genera il tuo eseguibile 
per quello che riguarda la documentazione su 
funzioni e librerie supportate da cygwin
http://www.cygwin.com/docs.html
su carta , vale tutto quello che concerne la programmazione 
per Unix Linux  e simili ...........
attento però ........
quello che scrivo io su buona parte del NG 
è considerata spazzatura ...........
Eventuali danni a cose,persone o sistemi non sono coperte da alcuna 
garanzia. 

quello che scrivo io su buona parte del NG č considerata spazzatura
Non prenderla sul personale... non e' chi la scrive il problema.
Il problema e' che dove esiste l'oggettivita' (vedi sizeof)
la spazzatura e' spazzatura e uno dovrebbe fare attenzione
al contenuto quando scrive in un newsgroup; dire cose false
e insistere (senza nemmeno investire un po' di tempo per
approfondire la cosa per proprio conto sui documenti di
riferimento) e' fare danni di immagine a se stessi e al
newsgroup e danneggiare con informazioni fasulle agli altri
lettori del newsgroup... in particolare quelli che si
avvicinano al C.
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

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

Salve a tutti: qualcuno può abbassarsi al mio livello e dirmi come si fa ad
ottenere un effetto analogo a clrscr del pascal?
Grazie

 ha scritto nel messaggio
news:9adhk4$ni9$1...@serv1.albacom.net...


 ottenere un effetto analogo a clrscr del pascal?
Se  usi un  compilatore C  della Borland,  basta includere  conio.h, che
contiene la funzione omologa.
Se  usi un  qualsiasi  altro  compilatore, puoi  fare  una chiamata  con
system() a "cls" o a "clear":
#ifdef IS_UNIX
  void clrscr(void) { system ("clear"); }
#else
  void clrscr(void) { system ("cls"); }
#endif
E poi  compili con IS_UNIX settato  a 0 o  a 1 (con gcc,  vedi l'opzione
`-D'). Attenzione: funziona solo su sistemi con shell 
command.com
 o *sh.
P.S.: lo so, e` una "sporca".
Bye,
 Emmanuele.
-- 
Emmanuele Bassi         |             [ 
http://digilander.iol.it/ebassi/
 ]
emmanue...@iol.it
  |
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4
Newsgroup: it.comp.lang.c
Titolo: Const dopo inizializzazione

Domanda magari banale, ma come faccio a usare una variabile in sola
lettura solo DOPO averla (dinamicamente) inizializzata a qualcosa?
Tipo:
long *x;
for (i= 0...)
  x[i] = 10;
const x;
// da qui in poi non è più modificabile.
Così non si può sicuramente, ma c'è qualcosa di analogo?
Grazie


No.
P.S.
UCAF?
in un modulo, fai la variabile statica, e una funzione pubblica che ti
ritorna un puntatore costante alla stessa. Nel modulo puoi usare
direttamente la variabile, all'esterno del modulo non puoi modificarla.

 direttamente la variabile, all'esterno del modulo non puoi modificarla.
Sì giusto, in effetti anche in altri linguaggi non è possibile out of
the box, e si usano le classi per incapsulare il tutto...
Non è che mi serva veramente, stavo solo pensando se dovevo aggiungere
qualche const per rendere più coerente il programma.

Stavo provando la seguente cosa
--8<---------------cut here---------------start------------->8---
int glob_var = 10;
int const *get_glob();
int const *
get_glob() {
     return &glob_var;
}
--8<---------------cut here---------------end--------------->8---
Il puntatore restituito da get_glob dovrebbe essere costante, come
faccio invece a fare in modo che il puntatore sia modificabile ma il
contenuto no?
Perché se faccio così
--8<---------------cut here---------------start------------->8---
     int *c = get_glob();
     *c = 2;
--8<---------------cut here---------------end--------------->8---
Me lo permette e il compilatore mi dà solo uno warning...

 contenuto no?
Bisogna mettere le parentesi nel modo giusto... ma per non sbagliare è 
meglio usare un typedef:
typedef int *int_ptr;
const int_ptr get_glob();
E.

--8<---------------cut here---------------start------------->8---
const int_ptr
get_glob() {
     return (int_ptr) &glob_var;
}
--8<---------------cut here---------------end--------------->8---
Mm ora però mi dice:
thjoin.c:22: warning: type qualifiers ignored on function return type
dovrei tornare un puntatore a intero che punta in realtà a una costante,
come dovrei scriverlo nel return?

Andrea Crotti ha scritto:

Sì, in effetti non ha senso restituire un const, visto che il valore di 
ritorno viene copiato. Il puntatore a const è quello che ottieni con
const int * get_glob();
E.