mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: File binari o testuali? Questo è il problema!

Qualcuno sa dirmi che differenza c'è tra l'apertura di un file in modalità
"b" e in modalità "t"?
Mi spiego meglio: (usando il compilatore MS) se apro un file in modalità
binaria, posso comunque usare fgetc, fgets, ecc. Ma allora qual è il
motivo per cui debbo usare la distinzione tra "t" e "b"?
Grazie anticipatamente.
---------------------------------------------------------------------------
Messaggio inviato attraverso 
http://www.trucchiperpc.it
 - sezione newsgroup

 motivo per cui debbo usare la distinzione tra "t" e "b"?
Perche' con "t" il carattere "\n" viene scritto su un file in maniera
"traslata" (2 caratteri, a capo e ritorno di carrello). Con "b" viene
scritto un unico carattere.
Questo e' il caso piu' noto, ma esistono altre traslazioni [1]. Per
questo motivo aprire in modalita' testo sotto Windows un file binario
non e' salutare (ma e' proprio sbagliato). :-)
C:\>iao Angelo
[1] Es. se si apre in modalita' testo un file binario, la letura di
    questo si interrompe ogni volta che si trova il carattere 0x19.
    Pure questo viene "interpretato" :-)
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

"b" e in modalità "t"?
Si tratta di convenzioni valide su alcuni sistemi operativi e su altri
no. Guarda caso, a fare differenze inutili, è DOS/Windows (e sistemi
Windows-like). Sotto Unix/Linux (o addirittura sotto Macintosh), le
convenzioni di lettura da un file sono sempre le stesse.  Quando apri
un file in modalità testo stai indicando al sistema che darai a
determinate sequenze di più caratteri un significato particolare (es.:
la sequenza 0x0d 0x0a vuol dire "nuova linea"). Sotto Unix, invece, la
"nuova linea" è rappresentata da un solo carattere (0x10), quindi non
c'è bisogno di tradurre niente, secondo alcuna convenzione e basta, 
per la lettura di un file, non c'è alcuna distinzione di modalità di
apertura.
-- 
Andrea Laforgia
#exclude <windows.h>

Angelo Paolitto wrote:
Grazie, anche ad Andrea.
Per completare la vostra utile spiegazione faro' qualche esperimento.

Newsgroup: it.comp.lang.c
Titolo: allocare vettore void

In una struct ho un void **vect
In una funzione devo allocare il vettore vect con n elementi... come faccio?
spero di essere stato chiaro... grazie a tutti!
M.

 spero di essere stato chiaro... grazie a tutti!
io non ti ho capito..vedremo gli altri ;)
ciao

 io non ti ho capito..vedremo gli altri ;)
Spero di essere stato piů chiaro!
Ancora grazie!
M.


mammamia se parli complicato!
cmq in parole piu' povere devi allocare un vettore di NUMP puntatori di
dimensione SIZE e far puntare a VECT questo vettore, giusto? fammici
pensare!

 del vettore di memoria che implementa lo stack, o NULL in caso di errore */
void *init_stack(struct stack *pst, size_t n)
{
   if(NULL != pst && 0 < n)
   {
      pst->size = n*sizeof(void*);
      pst->nump = 0;
      pst->vect = calloc(1, pst->size);
      return pst->vect;
   }
   return NULL;
}
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 void *init_stack(struct stack *pst, size_t n);
invece di passargli il puntatore perchč non glielo fai ritornare cosě eviti
di usare il doppio puntatore??
poi devi passarli NUMP... se no come fa a sapere quanta memoria deve
allocare??

penso che angelo ci sia andato piu' vicino! ;)

> penso che angelo ci sia andato piu' vicino! ;)
Credo di si, e lo ringrazio :)
Purtroppo vect č un puntatore a puntatore, č definito cosě nella struct e
non posso farci nulla :)
M.

muy_desperado wrote:

<code>
struct pipo {
  void ** elementi;
};
struct pippo P
P.elementi = malloc(N * sizeof(void *))
</code>
Dopo di che hai il tuo bel vettore di N generic pointer :)
-- 
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: richiesta informazioni su fflush(stdio)

Come sempre la mia ultima spiaggia e' questo NG.
So che e' una banalita' ovvero se qualcunome lo dice e' semplice capirlo.
Il mio problema e' il seguente:
Vorrei sapere cosa fa la funzione fflusch() e come agisce utilizzata con
fflussh(stdin).
Per spiegarmi meglio scrivo qui la parte di codice in cui ho trovato questa
funzione:
for (i:=0; i<N; ++i) {
  printf("\nInserire elemento %d",i+1);
  scanf("%d",&vett[i]);
  fflush(stdio);
}
N e' il massimo del vettore
vett e' un vettore di N elementi di tipo intero
Questo pezzo di programma ovviamente carica un vettore di N elementi.
Ringrazio anticipatamente tutti coloro che si degneranno di leggere questo
messaggio.
e-mail:rol...@freemail.it

Credo, ma non ne sono sicuro, che svuoti il buffer di input, nel senso
che, nel caso di input da tastiera di una serie di numeri, si "mangia" il
carattere che manda a capo.
Rony.
Newsgroup: it.comp.lang.c
Titolo: funzione sin( )

io sto imparando il c su linux e utilizzo il compilatore gcc
in un mio programma ho incluso  
#include<stdio.h> 
#include<stdlib.h> 
#include<math.h>
e ho utilizzato a un certo punto la funzione sin()
per esempio
x = sin(alfa);
il problema e' che se provo con
gcc nomefile.c
mi dice  "undefined reference to `sin'  "
mentre se provo con:
g++ nomefile.c
funziona tutto bene.
qualcuno puo' spiegarmi il perche'?
grazie



gcc non linka automaticamente le libreria matematica cosi' come invece fa
g++:se compili con gcc aggiungi alla riga di comando -lm :cosi' facendo
linki anche la libreria matematica
ciao ciao
                   Jonathan

 mi dice  "undefined reference to `sin'  "
Compilalo con:
gcc -lm -o programma nomefile.c
-- 
Emmanuele Bassi         |     [ 
http://digilander.iol.it/ebassi/linux/
 ]
   (Zefram)             |                     [ 
emmanue...@iol.it
 ]
                        |                 WARNING: Email Address is FAKE
GnuPG Key Fingerprint: 9747 635E B95A B0B3 4370 1CAA CAF7 512B 945C A44C


grazie mille per le risposte, adesso funziona!
davide

Newsgroup: it.comp.lang.c
Titolo: algoritmi per la gestione dei grafi : dove?

Mi potete segnalare un sito dove si possono trovare algoritmi per la
gestione dei grafi?

gestione dei grafi?
su 
http://ioi.dsi.unimi.it
 trovi una dispensa che illustra l'algorimo
di Dijkstra, utile per trovare il cammino minimo tra un nodo ed un
altro: adattandolo un po' puoi utilizzarlo per il tuo problema.
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: Problemi con le MFC nella creazione di DLL

Ciao a tutti, sto cercando di programmare delle DLL per Eudora e
utilizzo le MFC e in particolare la classe CWinApp. Se utilizzo il
costruttore
CWinApp theDll(nomefile);
il compilatore mi dą il seguente errore:
Error:  Error: Unresolved external 'CWinApp::~CWinApp()' referenced
from C:\BC5\BIN\eudora32dll.OBJ
e me ne dą molti, all'incirca per tutti i metodi definiti in CWinApp e
che il programma utilizza. Purtoppo non ho la risoluzione in linea per
tali problemi, quindi se qualcuno potesse darmi una mano, gliene sarei
molto grato.
Grazie

 e me ne dà molti, all'incirca per tutti i metodi definiti in CWinApp e

Newsgroup: it.comp.lang.c
Titolo: Matrici e indirizzi

-- 
Ciao
premetto che sono un principiante.
non riesco a capire come fare a passare l'indirizzo di una matrice come
parametro di una funzione.
Se ho una matrice
typedef int matrice[4][4];
matrice  mat;
e volessi passarla come parametro di una funzione che ne modifica il contenuto
come dovrei fare?
Dato che voglio modificarne il contenuto, non mi basta il passaggio "per
valore", ma mi serve quello "per indirizzo" (almeno cosi' credo).
Potrei anche dichiarare la matrice come globale, ma preferirei di no.
L'header delle funzione potrebbe essere
	void fai_qualcosa(matrice *mat)   
ma poi come faccio ad accedere agli elementi?
grazie in anticipo per l'aiuto e scusate la confusione.
Roby
			  /:= Linux Powered =:/
  	    /:= e-mail: metti "libero" al posto di "NOSPAM" =:/

 come dovrei fare?
dichiarazione  matrice:
int mat[4][4];
prototipo:
void faiqualcosa (int mat[4][4]);
funzione
void faiqualcosa (int mat[4][4])
  {
   fa qualcosa;
  }
ciao ciao
marco
--
Marco Coppo
University Of Sheffield
FAQ del gruppo:
http://www.programmazione.it/linguaggi/c/itcomplangc.htm

 valore", ma mi serve quello "per indirizzo" (almeno cosi' credo).
Una matrice non puņ essere passata per valore. Viene passata sempre per
indirizzo. Quindi vai tranquillo.
EMG

ma poi come faccio ad accedere agli elementi?
(*mat)[2][1] = 5 ;
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
---------------------------------------------

 (*mat)[2][1] = 5 ;
Ma un'ulteriore indirezione come questa serve solo se la funzione deve
essere in grado di cambiare dinamicamente matrice. Nella maggior parte
dei casi è sufficiente
void fai_qualcosa(matrice mat)
EMG

essere in grado di cambiare dinamicamente matrice. 
Un'indirezione come questa serve quando la matrice viene passata a
quel modo. Io non so in che modo il programmatore ha stabilito il tipo
TMatrice : potrebbe essere un array, cosi' come una struct, cosi' come
una union : non lo so a priori.


L'amico aveva, mi sembra, espressamente definito la matrice come array
bidimensionale di caratteri. Nel qual caso l'indirezione ulteriore č
inutile. Altrimenti hai ragione tu.
EMG

inutile. Altrimenti hai ragione tu.
Una delle cose che capita piu' spesso in programmazione e' modificare
il codice di altre persone.
E' piu' corretto scrivere :
void fai_qualcosa(matrice *mat)   
In quanto il tipo matrice, oltre che essere una matrice vera e
propria, potrebbe essere qualsiasi altra cosa.
Newsgroup: it.comp.lang.c
Titolo: exstern ????

Qulacuno mi spega la ciamata exstrern per condividere le varibili .
GRAZIE
<<SAX>>

Qulacuno mi spega la ciamata exstrern per condividere le varibili .
Sintassi: extern (nome_variabile | prototipo_funzione);
Con questa chiamata stai dicendo al compilatore che da qualche parte
(esternamente se vogliamo tradurre alla lettera) e' definita la
variabile (globale) o la funzione, e gli dici in che forma se la deve
aspettare (per la variabile il tipo, per la funzione tipo di ritorno e
parametri).
Dichiarare le variabili extern si usa per rendere visibile ovunque le
variabili globali.
Dichiarare le funzioni extern viene usato per le funzioni contenute
nelle librerie in genere.
Reso l'idea? Se no chiedi ancora :)
-- 
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."

 Qulacuno mi spega la ciamata exstrern per condividere le varibili .
extern  si usa  per forzare  il linkage  esterno. In pratica  lo si  usa
quando  piu` translation  units devono  condividere la  stessa variabile
globale. Se tu scrivessi cosi`:
file1.c:
int global_var;
file2.c:
int global_var;
commetteresti un errore. Nell'esempio il  compilatore riserva in ogni TU
dello spazio per  due variabili intere (con lo  stesso nome). Il linker,
quando  cerca di  mettere insieme  le due  TU, si  accorge della  doppia
definizione e non produce l'eseguibile.
Facendo cosi`:
file1.c:
int global_var;
file2.c:
extern int global_var;
tutto  funziona. Nel  file2  non  viene  riservato  lo  storage  per  la
variabile, ma rimane un riferimento che verra` poi risolto dal linker.
Attenzione che scrivendo cosi`:
extern int global_var = 123;
il compilatore alloca comunque della memoria per la tua variabile.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Carpe diem, quam minimum credula postero. (Q. Horatius Flaccus)

Newsgroup: it.comp.lang.c
Titolo: Come convertire interi in stringhe

Ci sono funzioni ufficiali/standard che facciano quanto richiesto in
oggetto ???
grazie

Fabbro wrote:

Risolto...  con sprintf...
grazie comunque
        F

Newsgroup: it.comp.lang.c
Titolo: Alla luce dei chiarimenti sui puntatori ad array....

Un ultimo quesito.
Siano definite le seguenti:
void fun(int* i1)
{
	printf("\nsizeof(i1) <%lu>", (unsigned long)sizeof(i1));
}
void fun2(int i2[])
{
	printf("\nsizeof(i2) <%lu>", (unsigned long)sizeof(i2));
}
e supponiamo di chiamare sia fun1 che fun2 passandogli come argomento
il seguente array:
int pippo[10];
in teoria all'atto della chiamata pippo dovrebbe essere convertito in 
int*, ma quando viene chiamata fun2 il parametro attuale non viene 
riconvertito in "array di int"??
Allora perche` sia fun che fun2 dicono che la dimensione di i1 e di i2 
rispettivamente sono sempre pari alla dimensione di un puntatore?
E` forse un limite introdotto dalla sizeof stessa (il cui valore viene 
calcolato a compile time)?
Oppure e` di nuovo colpa del mio compilatore?
Grazie,
ale.
Inviato da 
www.mynewsgate.net

 Oppure e` di nuovo colpa del mio compilatore?
No, stavolta e` giusto :-)
-- 
Enrico `Trippo' Porreca
Newsgroup: it.comp.lang.c
Titolo: parola chiave 'interface'

spulciando l'header dove veniva dichiarata l'interfaccia IUnknown, ho
trovato questa parola chiave
veniva usata per ricreare in C la stessa
struttura di una class in c++
purtroppo nella documentazione non viene
spiegata
qualcuno sa che significa?
--------------------------------
Inviato via 
http://usenet.iol.it

qualcuno sa che significa?
In C interface non esiste e non mi risulta esista nemmeno nel vuovo
standard.
In C si puo' programmare a oggetti, per farlo si ricorrono spesso ad
artifici simili, probabilmente hanno usato una #define: controlla nei
vari .h
Mox

 qualcuno sa che significa?
Non è che era in PASCAL???
unit Untitled;
interface
implementation
begin
end.
Ciao
--
Timothy Redaelli
Newsgroup: it.comp.lang.c
Titolo: cercasi programmatori

AAA cercasi programmatore
Webmagazine avviato cerca giovani programmatori (asp) in grado di
occuparsi del restyling del proprio sito. Inserimento articoli,
gestione del databese, ecc...
Il sito è giovane e si colloca nella fascia medio-bassa per numero di
visitatori ma ci sono buone possibilità di crescita future. Il
candidato ideale è giovane, desideroso di "farsi le ossa" in asp ma
con una buona conoscenza del linguaggio, portato ai rapporti
interpersonali.
Per informazioni scrivere a: 
lfa...@tin.it


E magari che insegni al proprio datore di lavoro che crosspostare non è
bello... :)

 wrote in message
news:ZKeC7.6890$74.1...@news2.tin.it...


 candidato ideale č giovane, desideroso di "farsi le ossa" in asp ma
ah insomma qualcuno che lavori aggratisse.
Ciao,
	Stefano
----------
"X WindowSSS, teSSSoro mio... lo odieremo per SSSempre"
Bill Gollum
----------

 Non si scriveva databčis?
No, database ignorante!
LOL
--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
PC Brain Official Web Site
http://digilander.iol.it/pcbrain
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Newsgroup: it.comp.lang.c
Titolo: Deallocare memoria

Ciao a tutti,
vi chiedo scusa per la domanda forse molto semplice, ma sono agli inizi con
il c e mi trovo in difficoltà con la gestione "diretta della memoria"...
Ho una struttura di questo tipo:
typedef struct Nodo
   {
               char *MiaStringa;
               struct node *Succ;
         } Nodo, *MyNodo;
extern pnode ListaMessaggi;
...,Che utilizzo come nodo di una lista, sia la creazione che la  stampa
sono Ok, ma quando si tratta di deallocare la memoria tramite free mi
succede di tutto...
qualcuno sa indicarmi il modo giusto per liberare la memoria e ricominciare
a creare la mia nuova lista utilizzando la stessa variabile dichiarata in
precedenza?

precedenza?
Assumiamo che la stringa puntata da MiaStringa sia stata allocata con
una malloc.
<CODE>
Nodo * tmp;
while (ListaMessaggi != NULL) {
    free(tmp->MiaStringa);
    tmp = ListaMessaggi;
    ListaMessaggi = ListaMessaggi->next;
    /* Fai la free dopo aver intercettato il nodo successivo */
    free(tmp);
}
</CODE>
Ovviamente la lista devi averla inizializzata correttamente, con Succ
dell'ultimo nodo settato a NULL e consideriamo la lista vuota se il
puntatore ListaMessaggi e' NULL.
Con la free puoi disallocare solo nodi allocati con la malloc() (o
calloc() e realloc(), che sono implementate allo stesso modo), non con
altre metodi ne per le variabili non allocate dinamicamente.
Mox

     free(tmp->MiaStringa);
           ^^^^^
tmp quando viene inizializzato ?
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

tmp quando viene inizializzato ?
Mai, nella fretta ho tagliato troppe cose, scusate.
La corretta inizializzazione di tmp era:
Nodo * tmp = ListaMessaggi;
Mox
Newsgroup: it.comp.lang.c
Titolo: [OT] C# : prima prova

ciao a tutti,
scusatemi se sono OT, ma non ho trovato NG che trattino il linguaggio C# (se
voleste indicarmene uno....)
sto cercando di imparare Cà, per applicazioni WEB, ed ho fatto una piccola
prova per vedere se ci capisco qualcosa..
ho scritto:
Using System;
    Class pippo
        {
           public static void Main ()
           {
             Console.WriteLine ("ciao a tutti");
           }
        }
compilandolo con csc prova.cs
mi da il seguente errore:
prova.cs (1,1): error cs0116: a namespace does not directly contain members
such as fields or methods
lo script dovrebbe essere corretto (alemno cosi dice il libro) a cosa e'
dovuto questo errore?
Grazie
Emanuele

> C# (se voleste indicarmene uno....)
Uno? Ce ne sono più di uno ... sotto il gruppo microsoft!
Ciao Max
--
Secondo alcuni autorevoli testi di tecnica Aeronautica,
il calabrone non può volare, a causa della forma e del
peso del proprio corpo in rapporto alla superficie alare. 
Ma il calabrone non lo sa e perciò continua a volare.
                   Igor Sikorsky

 voleste indicarmene uno....)
o al limite in 'programmare.win32'
-- 
RiK0
Non credo negli schemi non vincenti.

Newsgroup: it.comp.lang.c
Titolo: Come intercettare le chiamate al DNS?

Quale metodo posso utilizzare per intercettare le chiamate fatte al DNS da
un'applicazione qualsiasi (browser od altro client)?
Pensavo a qualcosa che si interponga tra windows e winsock (o qualcosa del
genere).
Qualcuno ha qualche idea?
Grazie.
        Andrea

Quale metodo posso utilizzare per intercettare le chiamate fatte al DNS da
un'applicazione qualsiasi (browser od altro client) sulla stessa macchina?




Quale metodo posso utilizzare per intercettare le chiamate fatte al DNS da
un'applicazione qualsiasi (browser od altro client)?


 wrote in message
news:6PX4b.78660$
sj6.1...@tornado.fastwebnet.it

Tipo... provare a postare sul ng piu' appropriato [1]?
C:\>iao Angelo
[1] Che dovrebbe essere it.comp.programmare.win32
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c
Titolo: AIUTO CHI MI RISPONDE!!!!

Cerco disperatamente Microsoft C versione 6 o 7!!!!
So che non lo usa nessuno, magari impolverato da qualche parte lo avete!!!
Ho una libreria che non riesco a far digerire ne al Turbo C della borland
ultima versione, ne al Microsoft Visual C ++ della stessa microsoft
Qualcuno risponda se ha dei problemi simili o meglio se conosce la soluzione
allo stesso!!!
Pietro


Quale č il problema con questa libreria? Magari sbagli semplicemente ad
includerla.
Cecco
Newsgroup: it.comp.lang.c
Titolo: Buffer tastiera

Come posso eliminare il buffer della tastiera?
                                                                        Alex

Come posso eliminare il buffer della tastiera?
A meno di non distruggere materialmente il computer (cosa poco
consigliabile) non c'č modo di eliminare il buffer della tastiera.
Se intendi svuotarlo, non esiste un metodo portabile, ma il piů delle
volte un semplice :
while ( getchar() != '\n' ) ; 
funziona.
--
Andrea Laforgia        (
andrea_...@bigfoot.com
)

 
Migliaia di comici disoccupati e tu cerchi di fare un provino qui?!?!?!
;-)
-- 
 Ciao, Luca.
 Reply to 
luca....@tiscalinet.it
Newsgroup: it.comp.lang.c
Titolo: Funzione lettura stringhe su file d'intestazione.

Voglio scrivere le stringhe qui sotto in un  "file.h"
per ripulirne il "main". Non riesco a trovare però
la giusta sintassi per  impostare su quel "file.h" 
la funzione adatta a fornirmi il risultato "z[n]"
come valore di ritorno. Come fare?
Grazie e saluti.
-------------------------------------------
#include <stdio.h>
int main()
{
char z[][20]={"Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"}; 
const char *k[]={" è festa."," si ricomincia."," non si parte.","almercato."," gnocchi."," pesce."," trippa."};
int n=4;
printf("%s%s\n",z[n],k[n]);
return 0;
}
---------------------------------------------
-- 
Qui si usa Linux.
http://www.puppylinux.org
Lunedì 18 gennaio 2010 (18/347) S.Liberata.
Declinazione solare -20,4905° sud. Luna:3g/4h/57m.
Vectra_VLi8

 const char *k[]={" ï¿œ festa."," si ricomincia."," non si parte.","almercato."," gnocchi."," pesce."," trippa."};


 
La "firma" qui sotto è fatta con un file principale
che contiene, oltre a qualche istruzione, tutti e 
365 i Santi del calendario.
Li voglio spostare in un file di intestazione e richiamarli
dal main. Vado a riprovare. Saluti. 
-- 
Qui si usa Linux.
http://www.puppylinux.org
mercoledì 20 gennaio 2010 (20/345) S.Sebastiano.
Declinazione solare -20,1025° sud. Luna:5g/3h/35m.
Fuji_Sie

 
Eureka. Mille grazie.
-- 
Qui si usa Linux.
http://www.puppylinux.org
Giovedì 21 gennaio 2010 (21/344) S.Agnese.
Declinazione solare -19,8704° sud. Luna:6g/6h/17m.
Fuji_Sie

 
azz... e io che temevo di personificare la banalitï¿œ!
Sarï¿œ mica il caso di investire in un manuale?

Newsgroup: it.comp.lang.c
Titolo: Programma che lancia uno script shell senza attenderne il termine

Ciao,
dovrei riuscire a realizzare in linux un programma che lancia uno script 
della shell e che si stacchi automaticamente senza attendere il termine 
del suddetto script script.
Ho dato un'occhiata a system ed exec ma non mi e' chiaro quale sia la 
piu' adatta.
Il problema in realta' e' piu' complesso ma questo sarebbe un buon punto 
di partenza...
Grazie
Massimiliano

 ha scritto nel messaggio
news:bemlg7$6t68e$1...@ID-38485.news.uni-berlin.de...

Secondo me
fork + exec
Ciao,
Ema

 attendere il termine
...
prova con spawn(..P_NOWAIT) o se usi le glib g_spawn_async() o
una cosa simile.
ciao
   hammer

greyowl ha scritto:

Sei OT. Rivolgiti a news://it.comp.os.linux.development
-- 
Andrea Bergia - studente              Linux Registered User #281550
Newsgroup: it.comp.lang.c
Titolo: Floyd Warshall

Ho bisogno di questo algoritmo per un esercizio per l'università
implementato in C.
Possibile che in rete ci sia solo pseudo-codice?
Grazie e scusate per la domanda.



Scusa se lo pseudocodice è poco, eh...
P.S.: Napoli, Federico II, facoltà di informatica, Laboratorio di 
Algoritmi e strutture dati per caso?

 Possibile che in rete ci sia solo pseudo-codice?
No, impossibile. Comunque, dato lo pseudocodice, non ci vuole molto in 
genere a tradurlo in qualsiasi linguaggio. Floyd-Warshall se non erro 
consiste in 3 cicli for e una matrice...

 se non erro consiste in 3 cicli for e una matrice...
Ma infatti.
Alla fine non sono altro che tre cicli for innestati e una sorta di 
rilassamento continuo degli archi.
Insomma, se sei arrivato a studiarlo dovresti anche saperlo tradurre 
in codice in meno di due minuti.

 ha scritto nel messaggio
news:Xns94EA8F12F89CEpa...@195.31.190.132...

Eh eh sicuro.....
Anche io sto seguendo e ora lo sto implementato per il progetto ;)
Comunque studiati bene lo pseudo-codice, vedi che così capisci
pure bene quello che fa!

 ha scritto nel messaggio
news:Xns94EA8F12F89CEpa...@195.31.190.132...

No Firenze !!!
Newsgroup: it.comp.lang.c
Titolo: Monitorare una connessione!

Ciao, ho bisogno di un'aiutino!
Dovrei realizzare un piccolo programmino che prende il tempo di una
connessione, xciò mi serve farlo partire quando si effettua una
connessione e farlo smettere quando la connessione non c'è più. Esiste
qualcosa di preciso da monitorare, tipo una porta o una dll, o che so
io? Meglio ancora, esiste in rete qualche piccolo sorgente di esempio
o qualcuno di voi che lo abbia già fatto!
Grazie in anticipo!
*Restore*

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

 sbaglio), ma quando ti connetti cambia e quindi attivi il timer.
l'ip e` 127.0.0.1 
questo e` pero` associato all'interfaccia di loopback e rimane lo stesso
anche durante una connessione (viene creata una nuova interfaccia a cui
viene associato il nuovo ip e la tabella di routing viene modificata di
conseguenza)
esiste una chiave nel registro che viene settata al momento della
connessione, ma non ricordo quale
ciao
Kronos
-- 
Home: 
http://kronoz.tsx.org
Sono un mirabile incrocio tra Tarzan e Giacomo Leopardi.
In me convivono tutte le doti intelluttuali di Tarzan e
tutta la prestanza fisica di Giacomo Leopardi.
A. Borsani

 connessione e farlo smettere quando la connessione non c'č piů. Esiste
  In Windows98/95/ME ?
  Pannello di controllo-->Modem-->Generale-->Proprieta-->
 Connessione-->Avanzate-->"Accoda al File registro"
 ti crea un file di log da quale puoi estrarre cio' che ti interessa.
  Se vuoi ti mando un mio programmino di esempio che ho fatto
 in C per avere il totale del costo delle telefonate fatte.

connessione, ma non ricordo quale
Se non erro:
HKEY_LOCAL_MACHINE
\System\CurrentControlSet\Services\RemoteAccess\Remote Connection
Se è 1 la connessione è attiva.
Saluti.
No.one.
/* Amo un muro colorato per il rumore del suo silenzio. */
Newsgroup: it.comp.lang.c
Titolo: Stampare in Linux

Salve,
sapete per caso qual'è il nome del file della stampante in Linux? Ho
fatto un programmino in C che legge un file di testo e lo riscrive,
un carattere alla volta, su un file, che potrebbe essere anche una
stampante. Ecco il codice:
#include "stdio.h"
#include "stdlib.h"
int main(int argc, char *argv[])
{
FILE *inputfile,*PRINTER;
char inputfilename[80];
char c;
PRINTER=fopen("/dev/usb/lp0","w");
printf("Inserire il nome del file da aprire :");scanf("%s",&inputfilename);
inputfile=fopen(inputfilename,"r");
if (inputfile!=NULL)     // Verifica la correttezza di apertura del file
{
while (!feof(inputfile)) // Scansione del file
{
c=fgetc(inputfile);      // Acquisizione di un carattere
fputc(c,PRINTER);        // Emissione del carattere sulla stampante
printf("%c",c);
}
}
else
printf("Errore di apertura del file %s \n",inputfilename);
// Chiusura dei file
fflush(PRINTER);
fclose(inputfile);
fclose(PRINTER);
}
Francesco

 sapete per caso qual'è il nome del file della stampante in Linux?
Sei OT.
Per le tematiche relative a Linux rivolgiti per esempio al gruppo
it.comp.linux.development
o al limite a
it.comp.programmare
ciao,
g.

Newsgroup: it.comp.lang.c
Titolo: curiosità

stanotte visto che non riuscivo a dormire mi è saltata questa idea, leggete:
ho un programma scritto in c in ambiente linux che dovrebbe servire per
settare tramite il framebuffer la risoluzione della shell il cui
funzionamento sarebbe + o - questo:
-l'utente inserisce un numero tra quelli che il programma gli presenta (Es.
1=640x480, 2=800x600...)
-il programma elabora il valore inserito dall'utente e chiama il programma
esterno fbset con le opzioni del caso.
In poche parole da un programma scritto in c posso richiamarne un altro
installato nel sistema?
in che modo?
Ciao e Grazie

 wrote:

puoi farlo con la chiamata system() 
#include <stdlib.h>
accetta un solo argomento che sarebbe il comando da dare: per esempio
system("mpg321 mio.mp3")   // suona l'mp3 mio.mp3
puoi passargli anche una strigna sprintffata prima magari..
ciao
(.. in a world far away, we may meet again..)
Newsgroup: it.comp.lang.c
Titolo: Gestione file .zip

Salve a tutti,
che libreria posso usare per consentire ai miei programmi di
comprimere dei dati in formato .zip?
Esiste qualcosa di free/open source magari scaricabile dai repository
di ubuntu?
Grazie

comprimere dei dati in formato .zip?
libzip

ingframin ha scritto:

la risposta te l'hanno giï¿œ data, ma per il futuro studia il comando 
search di aptitude - ï¿œ qualche ordine di grandezza piï¿œ veloce che 
chiedere qui ;D

 chiedere qui ;D
spiegami in quale parte del post l'autore dice di usare linux.
e soprattutto spiegami perche' dovrebbe usare aptitude.
Ciao Jack


ok scusa, ho letto male io :P
rimane la domanda su aptitude.
Ciao Jack

 e soprattutto spiegami perche' dovrebbe usare aptitude.
Aptitude iz da futah.

 Aptitude iz da futah.
cos'è futah?
-- 
 >Giovanni

 e soprattutto spiegami perche' dovrebbe usare aptitude.
non aveva detto "Esiste qualcosa di free/open source magari scaricabile 
dai repository di ubuntu?"
e non vi arrabbiate :-)))
ciao
-- 
 >Giovanni

  >Giovanni
Si si tranquillo :-)
Mi interessano entrambe le possibilità ovvero sia per windows sia pe
Linux.
Come distro uso ubuntu, non conosco ancoa bene aptitude.
Per windows sto in vano tentando di usare Visual C++ express edition
ma credo che scaricherò Mingw assieme
ad Eclipse, Visual c++ express non mi piace proprio, è troppo
incasinato, è troppo in filosofia Microsoft:
troppi tips, troppe funzioni e poca flessibilità.
Thx
Franco :-)

 cos'� futah?
u r da best
-- 
-riko
Newsgroup: it.comp.lang.c
Titolo: libreria mini-filesystem

Mi occorrerebbe una libreria (possibilmente open-source) per realizzare un mini/micro filesystem.
Non mi importa delle limitazioni, anche 8 caratteri per il nome del file vanno bene, l'importante e' che si possano creare file e cartelle (directory).
Non e' fondamentale l'efficienza, anche se allocasse come la FAT andrebbe bene.
Non mi importa di permessi, accessi, ecc...
Qualcuno puo' suggerirmi qualcosa?
In pratica all'interno di in un file del sistema host devo realizzare un micro-filesystem per poter creare file e cartelle (di poche decine di kbyte)...
Grazie per tutti i suggerimenti che vorrete darmi.


http://elm-chan.org/fsw/ff/00index_e.html
 
 
c'e' anche la versione "petit":
 
http://elm-chan.org/fsw/ff/00index_p.html
 
 
devi implementare la roba a basso livello (scrittura sul device), ma non dovrebbe essere troppo difficile.
 
Ciao Jack

Molto bene
ùGrazie!
Newsgroup: it.comp.lang.c
Titolo: Comunicazione tra processi differenti

Salve. Bhe, l'oggetto dice tutto. Come faccio ad inviare un segnale da un
processo ad un altro? Sto cercando di creare una specie di server, basato
su FIFO, connesso a piu' FIFO in lettura. Dall'altra parte del FIFO c'e'
il client. Il problema e' che quando il server viene avviato non tutti i
client avranno gi aperto il FIFO che gli corrisponde. Io avevo pensato di
usare i segnali, il server dovrebbe gestire il segnale inviato dal client
che si e' appena connesso avviando una function che tenta di aprire tutti
i FIFO non aperti. Non so se sono stato chiaro, cmq se avete qualche modo
piu' semplice per fare cio' che mi serve, fatemelo sapere lo stesso.
Grazie
nem...@sdf.lonestar.org
SDF Public Access UNIX System - 
http://sdf.lonestar.org
-- 
Posted from 
nem...@t3-d-static-237.adsl.directlink.net
 [63.68.131.237] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

su FIFO, connesso a piu' FIFO in lettura.
it.comp.os.linux.development

Grazie
Ti consiglio un giretto su:  
www.qnx.com
Inter-Process Communication allo stato dell'arte
anche solo per avere qualche spunto, s'intende ;-)
ciao, acc.   
a...@libero.it

Newsgroup: it.comp.lang.c
Titolo: Ambiente di sviluppo

Salve a tutti,
Sto cercando un ambiente di sviluppo per la programmazione c in windows.
per ora uso dev-c++ ma sinceramente non mi aggrada un granchč.
Stamattina ho cercato di sistemare eclipse usando il tool per programmare in 
c ma con scarsi risultati...
Per quanto č buono per java, tanto mi fa dannare per c...
Esiste un ambiente simile ad eclipse ma nato per c e non adattato?
Se poi fosse dotato anche di un tool per disegnare le gui sarebbe il 
massimo.
Grazie in anticipo
Franco 

 Esiste un ambiente simile ad eclipse ma nato per c e non adattato?
http://www.parinyasoft.com/
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Thanks, è perfetto :-)
Che poi da quel che h capito anche il dev si appoggia a mingw...
"Andrea Laforgia" <x...@xx.xx> ha scritto nel messaggio 
news:ef0v4k$36p$1...@news.newsland.it...



www.codeblocks.org
Newsgroup: it.comp.lang.c
Titolo: c basso livello

Ciao a tutti,
conosco il C per aver fatto alcuni progettini per l'università, ma non 
lo conosco in maniera per me soddisfacente, nel senso che mi piacerebbe 
essere in grado di comprendere e anche realizzare progetti in cui si 
faccia uso massivo delle caratteristiche peculiari del C a basso 
livello; questo perché un giorno mi piacerebbe saper gestire la scheda 
grafica, la scheda video, la rete ecc con il C. Mi sapete consigliare 
qualche testo scritto o qualche tutorial online?
Thanx!


wrote:

Per questo tipo di applicazioni non si usano caratteristiche
"particolari", se non un ricorso all'assembler inline che spesso
(almeno a scopo didattico) non e' indispensabile.
Quello che piu' ti serve e' la documentazione tecnica dell'hardware e
del sistema operativo usato.
Puoi trovare parecchi esempi (sorgenti di driver) nei sistemi
operativi "free" (Linux, FreeBSD, QnX)
Newsgroup: it.comp.lang.c
Titolo: problema con stringhe !!!

Non capisco perchč non funziona la seguente funzione...eppure non da
nemmeno errori in compilazione
per favore datemi una mano
#define MAXLEN 100
//prototipi delle funzioni
void leggi_vettore_stringhe(char *a[], int n);
void ordina(char* a[], int limite);
//variabili globali
    int n, i, j;  
 
void leggi_vettore_stringhe(char *a[], int n)
{
  char buffer[MAXLEN];
  char *v,*d;
  int c=0;
  for(i=0;i<n;i++)
  {
    for(j=0;j<MAXLEN;j++)
    {
     buffer[i] = '';
    }
    printf("Stringa %d : ",i);
    gets(buffer);
    for(j=0;j<MAXLEN;j++)
    {
     while(buffer[j] != '')
     c++;
    }
    d=(char*)malloc(c*sizeof(char));
    *a[i] = *d;
  }
}


Ciao,
Ema

Ehm EMA non funziona....ma proprio x niente peggio di prima...sei
sicuro/a di quello che hai scritto?
Ork


 
HTH,
Kronos
[1] In realta`  la cosa e` semplice, basta farci  l'occhio. char *(*a)[]
mi dice che /a/  e` il nome della variabile, le  parentesi forzando a ad
essere un  puntatore (*a), il resto  mi definisce il tipo  di puntatore:
char  *[],  ovvero array  di  puntatori  char. Riepilogando, /a/  e`  un
puntatore ad  un array di  puntatori a char.  char **a[], invece,  e` un
array di  puntatori a  puntatori a carattere  (che decade  char **(*a)[]
;)).
[2] Di norma e` meglio utilizzare strncpy, in modo da avere un controllo
sulla lunghezza massima della stringa copiata. In questo caso, pero`, so
che la stringa non potra` uscire  dallo spazio allocato visto che questo
spazio l'ho riservato proprio per contenere quella stringa.
-- 
Home: 
http://kronoz.cjb.net
"L'abilita` politica e` l'abilita` di prevedere quello che
 accadra` domani, la prossima settimana, il prossimo mese e
 l'anno prossimo. E di essere cosi` abili, piu` tardi,
 da spiegare  perche' non e` accaduto."

 sicuro/a di quello che hai scritto?
Si'.
---------------------------
#define MAXLEN 100
#define NSTR 3
//prototipi delle funzioni
void leggi_vettore_stringhe(char *a[], int n);
int main(void) {
  char * stringhe[3];
  int i;
  leggi_vettore_stringhe(stringhe,NSTR);
  for (i=0; i<NSTR; i++)
    printf("Stringa %d: <%s>\n",i,stringhe[i]);
  return 0;
}
void leggi_vettore_stringhe(char *a[], int n) {
  char buffer[MAXLEN];
  int c=0,i;
  for(i=0;i<n;i++) {
    printf("Stringa %d : ",i);
    gets(buffer);
    c = strlen(buffer) + 1;
    a[i] = (char *) malloc (c*sizeof(char));
    strcpy(a[i],buffer);
  }
}
--------------------------

     *a[i] = *d;
Anche quě interpretazione libera. Allochi un blocco di memoria, dopodichč
fai una assegnazione strana fra due caratteri. Niente di sensato.
Probabilmente volevi fare qualcosa del genere:
a[i] = (char*)malloc(c*sizeof(char));
strcpy(a[i], buffer);
A patto che:
- c sia precedentemente valorizzato in modo da contenere anche lo '\0'
terminale
- il vettore a[] abbia almeno i+1 elementi, e la funzione non lo sa.
Newsgroup: it.comp.lang.c
Titolo: mingw e libconio.a

Ciao.
Il problema in questione ï¿œ che usando mingw 3.4.5 esiste il file header 
conio.h ma non la libreria libconio.a   ...
ï¿œ possibile o sbaglio "sicuramente" qualcosa... perche non riesco a 
trovarla ne in lib ne altrove!
Ciao e grazie.


Ho risolto !
Libconio.a ï¿œ presente in Borland-style CONIO implementation for 
MinGW/Dev-C++
sul sito  sourgeforce.Il file ï¿œ con estensione devpack e va aperto con 
devcpp.Dopo il file libconio.a va preso e copiato nella cartella lib di 
mingw e linkato come le altre librerie...
Funziona tutto.....
Bye.

Newsgroup: it.comp.lang.c
Titolo: Dev-C++ e winsock

Ciao a tutti,
mi sapete dire cosa significano gli errori in fase di compilazione:
[Warning] comparison is always false due to limited range of data type
[Linker error] undefined reference to `WSAStartup@8'
Auguri a tutti di buon natale.
Simo

 [Linker error] undefined reference to `WSAStartup@8'
Probabilmente non linki le librerie dei socket. Ma dato che questo non 
c'entra con il C standard, prova a chiedere su it.comp.programmare.win32.
-- 
Mat/tia Belletti - Graduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://mbellett.web.cs.unibo.it/
Jabber: RedGlow  - Linux registered user 299762 @ machine 213003

 ha scritto nel messaggio
news:cqn8fd$ete$1...@le1.cs.unibo.it...


Newsgroup: it.comp.lang.c
Titolo: Binario <-> Sorgente

Ho un file in binario eseguibile (su una RISC System/6000) e vorrei
capire come funziona. 
Il mio problema e' quindi:
dato il file eseguibile, su una data macchina, e' posibile risalire al
sorgente?
Grazie,
	Il DiSpErAtO

 sorgente?
Devi solo sperare che sia stato compilato con -g, e tentare una list su un
debugger (come gdb)... Altrimenti potresti disassemblare il codice, ma
leggersi schermate di assembler non è mai molto piacevole...
-- 
*** Gottardi Matteo / 
goma...@tin.it
 ***
*Linux*, the choice of a _GNU_ generation
Newsgroup: it.comp.lang.c
Titolo: primi passetti....

ciao
scusate la banalità della questione ma sono proprio alle primissime
armi
devo creare un nuovo tipo di dato PIPPO che accetti solamente i
caratteri 'P' 'I' 'O' 
come posso fare? 
grazie 
s^n

yuriallaenne wrote:

Secondo me la tua domanda, riferita al linguaggio C,
non ha alcun senso,
(forse forse in C++, ma in C direi proprio di no).
Prova a spiegare meglio cosa vuol dire che
"il tipo di dato accetta solamente dei caratteri" ???
(in particolare cosa intendi per "accetta" ? da chi dovrebbe
"accettarli" ? )
g.

il testo dell'esercizio dice testualmente (e si tratta di un compito di
ansi c)
definire un nuovo tipo di dato DNA che accetti solamente i caratteri A
E F O
posso farlo con un enum?


 posso farlo con un enum?
Si e i valori che assume il nuovo tipo sono delle costanti numeriche, se 
non assegni i valori esplicitamente ogni costante assume il valore della 
precedente incrementato di uno. Se non c'č un'assegnazione iniziale la 
prima costante prende valore 0.

 posso farlo con un enum?
C'e' scritto: ...accetti *solamente*...?
Allora, imho, la risposta giusta e': in C non si puo'.
La risposta sbagliata invece e':
/*........ */
typedef enum tagDNA {
	A = 'A',
	E = 'E',
	F = 'F',
	O = 'O'
} DNA;
/*........ */
/* dichiarazione */
DNA Dna;
/* es. d'assegnazione: */
Dna = A;
/* oppure..: */
Dna = E;
/* ecc... */
------------------------
Una, tra le due risposte, 'potrebbe' essere quella richiesta 
dall'esercizio :)
Ciao
-- 
Cybertoldo
Per rispondermi via email, sostituisci moc.liamg con 
gmail.com
Newsgroup: it.comp.lang.c
Titolo: Utilizzo di C rivolto alle TLC

Ciao,
qualcuno conosce qualche sito dove siano spiegati bene i comandi che
in C si utilizzano per connessioni FTP, POP3 e SMTP (utilizzo dei
socket, ecc.)?
Grazie,
Marco


ma ci sono dei comandi specifici ?
io utilizzo socket qualunque mandando
e ricevendo le varie stringhe con i comandi
descritti negli rfc vari
fgsjlk
Newsgroup: it.comp.lang.c
Titolo: problema banale ma pur sempre problema

Ringrazio anticipatamente le persone che vorranno essermi d' aiuto.
Lavoro con il linguaggio C in ambiente Linux con compilatore GNU.
Volendo debuggare i miei programmi vorrei riuscire ad ottenere un listato
dei sorgenti con le righe numerate. Sara' stupido, ma non ci sono riuscita.
Qualcuno ha dei suggerimenti?
Grazie!

 dei sorgenti con le righe numerate.
Qualcosa del genere:
#include <stdio.h>
int main()
{
    FILE *fp = fopen( "numera.c", "r" );
    char buf[ 80 ];
    int num = 1;
    while ( fgets( buf, 80, fp ) != NULL )
        printf( "%5d: %s", num++, buf );
    fclose( fp );
    return 0;
}
EMG

 dei sorgenti con le righe numerate. Sara' stupido, ma non ci sono riuscita.
cat -n sorgente.c > numerato
C'e' un sentiero che si forma a mano a mano che il terreno e' sgombrato
dall'importanza che diamo alle cose.
	- Free -
Newsgroup: it.comp.lang.c
Titolo: Dove comprare...

Sapete dirmi un url dove posso trovare il libro Linguaggio C di K&R???

 Sapete dirmi un url dove posso trovare il libro Linguaggio C di K&R???
 
http://www.jacksonlibri.it
   ISBN: 88-7056-443-6

Newsgroup: it.comp.lang.c
Titolo: Gestioni dei segnali o cose simili...

Ho il seguente problema devo riuscire a beccare un'interrupt da
tastiera che non sia quello gestito dal segnale SIGINT cioč il ctrl-c,
mi servirebbe intercettare la pressione di un tasto qualunque...
Oppure se qualcuno sa spiegarmi come faccio a fare un output su scermo
di dati che mi provengono da una socket mentre sono in uno stato
sospensivo a causa di una scanf....
Tanti saluti e ringraziamenti dal CHIAVE

sospensivo a causa di una scanf....
Anche questo e` totalmente dipendente dal sistema.  Ad esempio,
se il tuo sistema (come molti Unix, e Win32) ti permette di avere
molteplici thread in esecuzione simultanea, questo offre possibili
soluzioni.  Di nuovo, in "puro C standard", non c'e` verso.
Alex

Newsgroup: it.comp.lang.c
Titolo: ritornare due valori da una funz

Ciao! Esiste un modo di far ritornare un valore di un tipo o un valore di
un'altro tipo a una funzione? Cioe' una funzione che se verificata una
particolare condizione ritorna ad esempio un int altrimenti ritorna un
double? Magari qualche trucco per fare na cosa del genere?

 ha scritto:

Una struct piu` una union:
struct retval {
        int status;
        union {
                int foo;
                double bar;
        };
};
/status/ e` un flag che indica cosa contiene la union, lo usi per sapere
se devi leggere /foo/ oppure /bar/.
Luca
-- 
Home: 
http://kronoz.cjb.net
Non capisco tutta questa eccitazione per il Multitasking: 
io sono anni che leggo in bagno.

 wrote in message
news:BLidc.116180$Kc3.3...@twister2.libero.it...

nn ti basta un
if()
return int...
else
return double ?
Oppure se devi ritornare sempre e comunque la stessa variabile, ma a seconda
delle circostanze in formato double o int, allora trattala sempre come
double e quando devi ritornarla come int fallo tranqui con quel ciclo if
else, tanto se la ritorni come int nn ti interessa se tronca la parte
decimale ;)

oppure semplicemente passare per riferimento una delle variabili di
output...
bye
nello
Newsgroup: it.comp.lang.c
Titolo: Re: Uscita dal main

 Sapete quale e' il motivo?
Exit fa alcune piccole procedure di cleanup e poi restituisce il
controllo al sistema operativo, return ritorna il valore della funzione
chiamata ma ovviamente essendo nel main il risultato � lo stesso;
essendo comunque exit una funzione di libreria magari su piattaforme
particolari come microdevice, cgi, etc, la funzione exit potrebbe fare
delle corrette procedure di cleanup e shoutdown che magari uscendo con
un return non hai.
ma � una supposizione. (io ho sempre terminato con return anche perch�
alle volte non mi serve utilizzare la stdlib)
Integrazioni? Smentite?

 Integrazioni? Smentite?
Di solito nei crt all'uscita del main c'è una chiamata alla _exit
(quindi meglio return, visto che sarebbe l'uscita più "pulita" per il
sistema operativo).
Ovviamente sì, su piattaforme esotiche un return al posto di un exit
potrebbe anche causare anche l'esplosione del dispositivo.
Ciao!

 return.
I tuoi amici hanno torto.
-- 
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: Gestione File,...[ fseek & ftell ]...e dintorni

Salve a tutti
Avrei un problema di lettura da file
ho un file che contiene stringhe di 22 caratteri del tipo
asdfghjklpoiuytrewqasd
asasjfhgogiehghgerehg
........................................
asassasssshhhjhjhhhjkk
a me serve leggerne un certo numero non consecutive ad esempio
leggere la riga corrispondente da un valore di ritorno da una funzione
random
Come potrei fare per implementare una situazione del genere?
in questo momento uso fgets(....) leggo sequenzialmente le righe dal file
Ho provato con fseek ed ftell aprendo i file in binario c'e' qualche
problema sui caratteri da leggere
aprendo in binario il file ho come valore di ritorno per la ftell l'indice
del byte sul quale verra' fatta l'operazione di lettura o scrittura
successiva ora come posso riposizionarmi all'inizio di una riga che non sia
quella su cui ho fatto l'ultima operazione?
Il flusso di dati in un file come viene trattto dalle funzioni di lettura e
scrittura a basso livello?
L'offset della funzione fseek ad esempio viene calcolato da dove dall'inizio
del file? o dall'inizio della stringa che sto leggendo?
esempio offset 25 sono sulla seconda riga? cioe' dopo asa <- qui?
....c'e' qualcuno/a che puo darmi una dritta grazie in anticipo......
Phobia
-------------------------------------------------------
Signature  Under Construction

 o dall'inizio della stringa che sto leggendo?
No.
EMG

 del file? o dall'inizio della stringa che sto leggendo?
Glielo dici tu con il terzo parametro. 0 = inizio file, 1 = posizione
corrente, 2 = fine file.
Ci sono anche le macro predefinite SEEK_SET, SEEK_CUR, SEEK_END.
Saluti,
@le
Newsgroup: it.comp.lang.c
Titolo: Valori INF e NAN dei float

dunque, i float e i double possono assumere tutti i reali (entro i limiti e
con la dovuta approssimazione ovviamente) oltre ai valori +INF, -INF e NAN
(not-a-number)
la domanda e`: come assegnarli?
ovvero come inserirli nel codice come litterali float?
una soluzione non-elegante, di cui mi sono dovuto accontentare in passato e`
la seguente:
double minimo = atof("+INF");
si possono anche usare "-INF" e "NAN"
effettivamente i valori +INF e -INF spesso aiutano a semplificare un
algoritmo, strano che non esistano costanti o macro pronte all'uso
TobiX

algoritmo, strano che non esistano costanti o macro pronte all'uso
Ma dato che e' un'operazione elementare si possono sempre costruire.
Ti riporto di sotto l'esempio del NaN :
#include <stdio.h>
#include <string.h>
const unsigned long singleNaN = 0xFFFFFFFFL ;
const struct {
               unsigned long Hi, Lo ;
             } doubleNaN = { 0xFFFFFFFFL, 0xFFFFFFFFL };
int main()
{
    float  f = 3.1416 ;
    double d = 2.71828 ;
    printf("prima dell\'assegnazione : f = %f ; d = %f\n", f, d) ;
    memcpy ( &f, &singleNaN, sizeof ( f ) ) ;
    memcpy ( &d, &doubleNaN, sizeof ( d ) ) ;
    printf("dopo l\'assegnazione     : f = %f ; d = %f\n", f, d) ;
    return 0 ;
}
Si potrebbe, pero', ottimizzare il codice, adoperando "memset()",
senza sfruttare le costanti.
Andrea Laforgia

 Ma dato che e' un'operazione elementare si possono sempre costruire.
sì, sapendo la rappresentazione interna dei float! :-)
(che tra l'altro non so se cambi di implementazione in implementazione...)
grazie cmq
TobiX



Se stai parlando di NaN, stai parlando di standard IEEE 754.
Non tutti i formati concepiscono il valore NaN.
Andrea Laforgia