mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: Generare un ritardo

Salve,
sto cercando di realizzare un programma in C sotto Linux che faccia ciclare
una serie di funzioni che indicherò con Aij:
A11 A12 A13
A21 A22 A23 A24
A31 A32
...
..
..
Ogni "riga" viene eseguita entro 500usec, ma vorrei che prima che il
programma comici ad eseguire le funzioni della riga successiva aspettasse lo
scadere dei 500usec (praticamente usare un segnale di sincronizzazione).
Eseguo A11 A12 A13
aspetto che arrivi il segnale
Eseguo A21 A22...
e così via.
C'è qualcuno che mi può dare un consiglio od eventualmente indicare dove
trovare delle info.
Grazie.
--
SuperMillo

Il 21 Apr 2004, 13:40, "Supermillo" <supermil...@inwind.it.invalid> ha
scritto:

Immagino che tu abbia generato dei threads di esecuzione paralleli con
pthread_create() per eseguire le singole funzioni dal fatto che esse non
ritornano prima che le successive siano chiamate ad eseguire.
A questo punto su Linux puoi utilizzare pthread_join() per attendere che il
thread in esecuzione abbia completato il suo compito prima di procedere con
la chiamate delle successive.
Però non capisco perchè le fai eseguire in parallelo se comunque hai bisogno
che ciascuna ritorni prima di eseguire la successiva.
Ciao, Fabio.
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 scadere dei 500usec (praticamente usare un segnale di sincronizzazione).
Il C standard non ha segnali di sincronizzazione, l'unico modo portabile 
per `aspettare' e` fare uso delle funzioni di <time.h> (e secondo me non 
e` di questo che tu hai bisogno).
Probabilmente ti sapranno consigliare qualcosa di piu` utile in 
it.comp.os.linux.development.

 it.comp.os.linux.development.
Proverň.
Grazie.

 bisogno che ciascuna ritorni prima di eseguire la successiva.
In effetti non uso i thread, devo eseguire una serie di funzioni una dietro
l'altra ed ogni tanto deve esserci un ritardo. Volevo usare le funzioni di
<time.h> ma da quel che ho capito si parla di secondi ed io ho a che fare
con periodi di 500usec.
Grazie.

Per generare un ritardo espresso in usec puoi usare la funzione select, 
per esempio:
#include <sys/types.h>
#include <sys/time.h>
#include <unistd.h>
int main() {
         struct fd_set fdset;
         struct timeval t;
         FD_ZERO(&fdset);
         t.tv_sec=0;
         t.tv_usec=500;
         select(0,&fdset,&fdset,&fdset,&t);
         return(0);
}
Newsgroup: it.comp.lang.c
Titolo: Scope di variabili: dubbi...

Ciao a tutti, avendo una struttura di questo tipo:
_____STRUTTURA_______
struct command_struct{                                /* struttura del 
comando impartito alla shell */
   char* name;                                         /* nome */
   int* argcmd;                                        /* numero 
parametri */
   char** argvcmd;                                     /* vettore 
parametri */
};
----------------------
Se associo nel main() ad un puntatore a struttura lì creato.....
_______COMANDO USATO PER CREARE IL PUNTATORE________
struct command_struct *cmd1;
----------------------------------------------------
....un valore di ritorno di una funzione che alloca memoria per la 
struttura e per i suoi elementi e memorizza nei suoi elementi dei dati:
_____ECCO LA FUNZIONE_________
cmd1 = alloc_decode_cmd();
------------------------------
riesco poi dal main() o da altre funzioni ad accedere ai dati della 
struttura allocati in altre funzioni avendo la visibilità del solo 
puntatore alla struttura (nel main perchè ho creato lì il puntatore alla 
struttura, nelle funzioni perchè gli passo tale puntatore)?
	ciao e grazie, rz.

 Ciao a tutti, avendo una struttura di questo tipo:
<snippone>
Perché non provi ?
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

"mrzac" <molan...@email.itALIA> wrote in message
news:1role.28251$
795.8...@twister1.libero.it
Una variabile se e' definita al difuori di qualsiasi blocco e'
visibile all'interno di tutto il programma (sempre che non venga
usato static, nel qual caso e' visibile solo all'interno del file
in cui e' stata definita), se e' definita all'interno di un blocco
la sua visibilita' e' dal punto della sua definizione alla parentesi
che chiude quel blocco.
Se una variabile e' definita all'interno della funzione
main, la sua visibilita' e' dal punto un cui e' definita
alla parentesi che chiude il blocco della funzione.
L'unica particolarita' della funzione main e' che e' la
prima fiunzione che viene chiamata e l'ambiente puo' passargli
dei parametri... Per il resto e' uguale a tutte le altre.
Questa discussione sullo scope NON e' esaustiva.
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c
Titolo: serial number del bios

Qualcuno sa indicarmi come realizzare una procedura, in C, per sapere il
serial number del BIOS.
Grazie mille

Grazie mille
Se ti interessa posso postarti un listato sul CMOS che ho trovato in rete.
Ciao, Giuseppe

 Se ti interessa posso postarti un listato sul CMOS che ho trovato in rete.
 
a me interessa ;D
Newsgroup: it.comp.lang.c
Titolo: BCB 4: Unit .cpp e .c

Ciao a tutti,
sto creando l'interfaccia grafica che funzioni sotto Win32 per un programma
originariamente sviluppato per Unix. Premetto che non sono un esperto di
programmazione C++ sotto Win32. Col Borland C/C++ Builder 4 mi capita uno
strano fatto: se chiamo una funzione di una unit .c in una unit .cpp, il BCB
mi dice che non è in grado di linkare l'oggetto perché non trova la sopra
citata funzione. Eppure nella lista delle unit compare quella .c e viene
correttamente compilata con la generazione del .obj.
Il fatto veramente strano è che cambiando il nome della unit .c a .cpp e
modificando opportunamente il progetto, il problema scompare completamente.
Dato che non mi è possibile rinominare tutti i sorgenti .c in .cpp, perché
condivisi da due progetti contemporaneamente, mi piacerebbe sapere come
aggirare il problema che sicuramente è dovuto alla mia scarsa conoscenza
dell'ambiente di programmazione BCB 4.
Grazie
            Alex

 correttamente compilata con la generazione del .obj.
Dichiara extern "C" quelle funzioni C++ che vuoi chiamare da C.
Con extern "C", chiedi al compilatore C++ di sacrificare alcune delle
feature del C++ (sicurezza dei tipi, overloading, ...) in favore della
compatibilita` con il C.  Se non lo usi, il compilatore C++ "decora"
i nomi delle funzioni per garantire queste feature, e quindi il C non
riesce piu` a "vederle".
Tipicamente il tuo .h sara` scritto in questo modo:
#ifndef NOMEDEL_H
#define NOMEDEL_H
#ifdef __cplusplus
extern "C" {
#endif
int pippo(double);
void pluto(char*);
/* ecc ecc */
#ifdef __cplusplus
}
#endif
#endif

Grazie mille !!!
        Alex
Newsgroup: it.comp.lang.c
Titolo: PROBLEMA DI ACQUISIZIONE INPUT

Salve a tutti sono uno studente di Informatica alle prese con il C; ho
un problema sulla lettura di caratteri;io devo leggere stringhe di uno o
due caratteri (es. c 2 3 oppure sn b) io ho utilizzato la scanf e va
tutto bene se inserisco i valori c 2 3 ma se inserisco sn b mi legge
solo s ed in un secondo tempo la n,quindi con lo switch con mi effettua
le operazioni relative a sn, mi cerca operazioni s e operazioni n e non
sn insieme.
Vi scrivo il codice:
 
char op;   //tipo di operazione
char col;  //valore colore pedina (b=bianco;n=nero)
 
scanf("%s",&op);  //<---- Qui non mi legge 2 caratteri mi legge s e poi
n e non                       // va bene
switch(op){
case 'sn':{
         scanf("%c",&col);
         if (col=='b')printf("Nr.totale di pedine bianche
%d\n",totpedinebianche);
         if (col=='n')printf("Nr.totale di pedine nere
%d\n",totpedinenere);
         else
         {printf("Colore immesso errato\n");break;}
         break;
        }
 
Grazie a tutti coloro dedicheranno parte del loro tempo per risolvere il
mio spero piccolo problema
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Grazie a tutti  [cut]
di niente
ciao
-- 
By_Baitch
"Live Your Life!" (Ring ain't a jail)
http://utenti.tripod.it/baitch
Newsgroup: it.comp.lang.c
Titolo: domanda da un neofita ,LEGGETEMI per favore.

E' possibile sfruttare il C++ per creare programmi da far girare in
ambiente win 95 ?Si può creare la parte grafica "interfaccia "con
relativi tasti di scelta ?
grazie per l'attenzione
Fabrizio.

relativi tasti di scelta ?
Certo.
Per questo scopo e' nato "it.comp.programmare.win32" 
Skyscraper (apprezzatelo adesso : eviterete la coda)
----------------------------------------------------
 
andrea_...@bigfoot.com
----------------------------------------------------

Per questo scopo e' nato "it.comp.programmare.win32" 
Grazie di cuore ,ci do subito un occhiata .
Fabrizio.


Per questo scopo e' nato "it.comp.programmare.win32" 
Io utilizzo il news server 
News.polito.it
 ,ma del ng da te suggerito
neanche una traccia .......come lo trovo ?


relativi tasti di scelta ?
Certo, ovviamente usando il compilatore adatto.
Per questo scopo credo sia nato da poco "it.comp.programmare.win32" 
"it.comp.lang.c" come "it.comp.lang.c++" sono orientati piu' per le versioni
standard dei due linguaggi, mentre la programmazione win32 e' specifica di
quella piattaforma.
Sicuramente nel ng neonato troverai tutte le informazioni specifiche che ti
servono.
;)


Newsgroup: it.comp.lang.c
Titolo: Entrare in modalita' grafica con GCC

Buondi', vorrei sapere come si puo' inizializzare la modalita' grafica
ad es MCGA , utilizzando lo GCC di linux.
Il tutto andrebbe fatto in modalita' testo -> da escludere chiamate a
librerie di X
Thanks
PS : per capirci meglio cerco qualcosa di simile a detectgraph+initgraph
che usavo nel Turbo Pascal...ormai molti anni fa.
-- 
Dice il saggio :
	" in a world with no borders who needs gates and windows "
Perego Paolo -> student at Universita' degli Studi 
			   Milano - Computer Science dep.
Send your e-mail to : 
pp52...@silab.dsi.unimi.it

 ad es MCGA , utilizzando lo GCC di linux.
usa SVGAlib, oppure GGI (che funziona con vari driver di output)
-- 
togli .x per rispondermi,NON usare HTML.ICQ 6585343
Linux FAQ 
http://members.bigfoot.com/%7Eranger_rg/
Boycott Microsoft 
http://www.boycott-ms.org/

ad es MCGA , utilizzando lo GCC di linux.
Non so quale sia la funzione adeguata del compilatore sotto linux, ma devi
attivare l'interrupt 0x10, con funzione diversa (in AX se modalita' VESA) a
seconda della modalita' grafica desiderata.
--
Posted from 
itaca.ulysse.it
 [195.223.254.1]
via Mailgate.ORG Server - 
http://www.mailgate.org

che usavo nel Turbo Pascal...ormai molti anni fa.
Provato le SVGAlib?
Newsgroup: it.comp.lang.c
Titolo: CygWin e WinMain

Perche' compilando questo semplice codice
#include <windows.h>
int WinMain(  HINSTANCE e, HINSTANCE h, LPSTR l, int d){
    MessageBox(0,"Hello, boys!", "HELLO", MB_OK);
    return 0;
}
con
gcc hello.c -o hello -luser32 -mno-cygwin
ed eseguendo hello.exe compare una finestra di console e poi il Messaggio?
qualcuno sa come evitarlo?
--
____ __         __,_      __  _____
\  _\_ \  ___ _/ / /\  /\/  \/ / _/ It is better to reign in Hell
 \  _ \ \/ _ '/ , |\ VV / / / / _/ Than serve in Heaven.- MILTON
  \_,_/\_\_,_/_/|_| \__/\__/_/_/
      -- the one and only --     e-mail : 
blak...@tiscalinet.it
                                ICQ    : 59394345
The UNIX Guru's View of Sex:
$unzip;strip;touch;finger;mount;fsck;more;yes;umount;sleep

Molto probabilmente è il complialtore che mette automaticamente il codice
per la finestra di console.
Prova con un altro compilatore ti consiglio LCCWIN32 sharewere che puoi
trovare su 
http://www.programmazione.it
alla sezione download C/C++.
Ciao.

sta scritto nelle faq del cygwin!
comunque devi aggiungere come parametro di compilazione:
-Wl,-subsystem,windows
oppure usare il parametro:
-mwindows
Se qualcosa non ti e' chiaro potresti sempre iniziare a leggere
la documentazione...
ciao
luca


Newsgroup: it.comp.lang.c
Titolo: Ho scritto un programmino... e ora?

Ciao a tutti e grazie in anticipo per l'attenzione.
Per la prima volta nella mia breve carriera di programmatore, ho iniziato e
concluso un programma completo (anche se moolto semplice), si tratta di un
database per sms (avete presente quelle persone che hanno il vizio di
scriversi i messaggini del telefono più carini su un macello si fogliettini
svolazzanti? ecco, io - per assenza di idee - ho scritto un programma che
cataloga questi messaggi e li salva sul pc. Non è granche, ma credo che cia
abbastanza funzionale. Ora, vorrei mettere questo programmino in qualche
sito, dove la gente possa andare, provarlo, e magari dirmi cosa ne pensa.
Quali siti offrono questo servizio? (apparte quelli troppo famosi, in cui il
mio misero programmino sparirebbe...)
Altra cosa: se qualcuno avesse voglia di visionare i sorgenti, giusto per
dirmi "sei un cretino...hai sbagliato qui e qui e qui e qui...ecc ecc ecc"
(di certo il mio prog non è un esempio di bella programmazione... :P cmq è
scritto in C con djgpp), basta dirlo e vi mando i sorgenti!
Ciao e grazie!
Dome

Quali siti offrono questo servizio? (apparte quelli troppo famosi, in cui il
Se non sono famosi, rischi che nessuno lo veda. ;-)
http://volftp.mondadori.com
 , c'e` la sezione dedicata ai programmatori
italiani.
-- 
Saluti,
    Mardy
Newsgroup: it.comp.lang.c
Titolo: Lettura file

Salve ragazzi, ho un problema con la visualizzazione di una stringa letta da 
un file di testo, la stringa viene visualizzata solo per metà e i restanti 
caratteri, sono caratteri sporchi. Altra cosa, come posso leggere delle 
stringhe, da un file, senza sapere in anticipo, quanto saranno lunghe queste 
stringhe? Comunque questo è il codice, spero che qualcuno potrà aiutarmi
#include <stdio.h>
int main()
{
 char buf[9],i;
 char *p;
 FILE *fp;
 int dimensione=9,elementi=1;
 fp=fopen("file.txt", "r");
 if (!fp)
    {
        printf("Non posso aprire il file \n");
        exit(1);
    }
 fread(buf,sizeof(dimensione),elementi,fp);
 fclose(fp);
 printf("%s \n", &buf);
return 0;
}
-- 
# ICQ 84624356
# MSN 
lello...@katamail.com
# Yahoo ilpuntatore 

 caratteri, sono caratteri sporchi. 
ma la tua stringa quanto e' lunga ??
perche' stai facendo una cosa strana,
(e sbagliandola!)
dimensioni il buf a 9 caratteri e poi vorresti leggere
9 caratteri!
Le stringhe in C sono sequenze di caratteri terminate
da un carattere nullo. Quindi, a meno che il
nono byte che leggi dal file non sia un carattere
nullo, ti trovi ad avere un array
che contiene 9 caratteri ma non un terminatore.
Quindi quando vai a stamparlo il computer ti stampa
i 9 caratteri che hai letto e poi continua a
stamparti pattume prendendo byte dalla memoria
"dopo" il buf cfino a che non incontra
uno 0.
la cosa tragica e' che anche se quella sopra era
la tua intenzione (sbagliata, come ti ho detto)
in realta' nel codice non la persegui: fai un
errore nell'errore.
Infatti invece di leggere "dimensione=9" caratteri,
tu leggi sizeof(dimensione) caratteri.
Ora, dimensione e' una variabile definita intera, quindi
di solito occupa 4 byte. Quindi  sizeof(dimensione) e' uguale
a 4.
Quindi in pratica tu definisci un buf di 9 caratteri
(che all'inizio del programma conterranno pattume)
poi ne leggi solo 4, non metti terminatori e stampi:
chiaramente visualizzerai 4 caratteri dal file poi
il pattume che c'era in buf, poi il pattume
oltre a buf, fino a che non viene trovato uno 0.
ciao,
g.
ciao,
g.


La mia intenzione era solo quella di leggere la stringa, che era contenuta 
nel file di testo ;-) 

 nel file di testo ;-) 
Si, ma la tua stringa quanti caratteri e' lunga ?
Se e' lunga 9 caratteri devi usare un buffer lungo 10 e
mettere l'ultimo byte a 0.
ciao,
g.

Giovanni Resta wrote:

E come posso mettere l'ultimo byte a 0 ?
-- 
ICQ # 84624356
MSN 
lello...@katamail.com
Yahoo ilpuntatore

 E come posso mettere l'ultimo byte a 0 ?
char buf[10];
buf[9]=0;
comunque mi sembra che tu nell'ordine
debba andare a rileggerti in qualche manuale
1) la gestione delle stringhe di caratteri in C
2) la spiegazione dettagliata dei comandi per leggere
dai file e in particolare fscanf() e fgets() che sono
probabilmente quelli che ti serviranno.
In generale fread non e' l'istruzione piu' adatta a leggere
una stringa, a meno che tu non sappia a priori
esattamente quanto e' lunga.
ciao,
g.
Newsgroup: it.comp.lang.c
Titolo: info su funzione

Ho una funzione definita cosě:
#define CEIL(num,den) ( ((num)+(den)-1)/(den) )
e l'uso č questo;
int len;
len = CEIL(L, step);
la CEIL perň difficilmente mi restituisce un numero intero anche se lo sono
num e den, come fa quindi len ad essere un int senza usare il casting?
Grazie
michele


prima di tutto la CEIL suddefinita NON e' una funzione.
se supponiamo, come sembra di capire, che L e step sono integer,
allora il codice sopra e' equivalente a
int len;
len = (L+step-1)/L;
(L+step-1)/L e' una operazione fra
numeri interi e quindi il valore e' intero. Non
e' necessario alcun cast, perche' stiamo
lavorando sugli interi.
Cioe'
7/2 e' uguale a 3
7/2.0 e' uguale a 3.5
ovvero il compilatore non "promuove" gli interi
a float o double in presenza di divisione, a meno che
tu non lo forzi a farlo.
ciao,
g.

 come fa quindi len ad essere un int senza usare il casting?
Anche se num e den fossero dei tipi in virgola mobile non ci sarebbero
problemi perche` il risultato verrebbe troncato ad un int.
Luca
-- 
Home: 
http://kronoz.cjb.net
Alcuni pensano che io sia una persona orribile, ma non vero. Ho il
cuore di un ragazzino - in un vaso sulla scrivania.

Newsgroup: it.comp.lang.c
Titolo: aiuto file eseguibili

Con quali istruzioni si può mandare in esecuzione un file "exe" ?
So come si scrive su di un file "txt" (apertura, lettura/scrittura,
chiusura) ma non sò cosa si debba fare se il file in questione è di formato
differente (jpg , bmp, ...)
Grazie per l'aiuto 
bazz...@hotmail.com

Entro nella stanza e...cosa ti vedo ? sette lettini.
Su uno di essi c'era scritto Bazzecola :
#Con quali istruzioni si può mandare in esecuzione un file "exe" ?
L'unico modo standard e' quello di utilizzare la funzione system(),
pero' ogni implementazione potrebbe possedere delle routine
specifiche.
#So come si scrive su di un file "txt" (apertura, lettura/scrittura,
#chiusura) ma non sò cosa si debba fare se il file in questione è di formato
#differente (jpg , bmp, ...)
devi usare l'attributo "b" (binario) nella stringa che specifica la
modalita' di accesso al file in fopen().
Scrivi, cioe' :
fopen( "miofile.jpg", "rb" ) per la lettura binaria.
Andrea Laforgia        (
andrea_...@bigfoot.com
)
----------------------------------------------------
There is nothing better for understanding a kangaroo
than seeing it jump.
----------------------------------------------------
Newsgroup: it.comp.lang.c
Titolo: Variabili globali e locali, differenza tra C e C++

Ho inviato sul newgroup it.comp.lang.c++ un paio di giorni fa il quesito
sottoriportato ma mi rendo conto che il newsgroup più adatto è probabilmente
questo (ho fatto passare qualche giorno per evitare il crosspost
selvaggio...).
Per tale motivo lo ripropongo integralmente:
In C++, volendo accedere ad una variabile globale della quale esiste anche
una omonima variabile locale, basta utilizzare l'opportuna sintassi:
int a=1;
void main(void)
{
  int a=2;
  printf("Global %i\n",::a);
  printf("Local  %i\n",a);
}
Che genera l'output:
Global  1
Local  2
Bene, come fare la stessa cosa in C?
E' chiaro che all'interno di un blocco è semplice ma l'accesso ad una
variabile preclude l'accesso all'altra:
int a=1;
void main(void)
{
  int a=2;
  if (1)
    {
    extern int a;
    printf("Global %i\n",a);
    }
  printf("Local %i\n",a);
}
La domanda è: E' possibile accedere in qualche modo ad entrambe le variabili
all'interno dello stesso blocco in C?
Spero che la questione non sia troppo banale...
Ciao,
Paolo.

 una omonima variabile locale, basta utilizzare l'opportuna sintassi:
Non so se c'è qualcosa di nativo.
Una sorta di workaround può essere quello di definire
un puntatore alla variabile globale e usare quello per
riferirsi ad essa.
--------------------------------------
int a=1;
void main(void)
{
  int * b;
  b = &a;
  int a=2;
  printf("Global %i\n",*b);
  printf("Local  %i\n",a);
}
Che genera l'output:
Global  1
Local  2
--------------------------------------
Ciao,
Ema

  int a=2;
Occhio  che questo  si  puo` fare  solo  con il  C99. Nel  C89 tutte  le
dichiarazioni devono essere in testa al blocco.
Kronos
-- 
Home: 
http://kronoz.cjb.net
Se il  destino di un uomo  e` annegare, anneghera` anche  in un bicchier
d'acqua.
Proverbio yddish
Newsgroup: it.comp.lang.c
Titolo: Ancora una domandina su alberi binari

Salve a tutti e grazie ad  Andrea Laforgia  e agli altri del N.G. per
le dritte che mi avete dato in un post precedente sugli alberi binari.
Ho  creato un albero binario (non bilanciato).Devo salvarlo in un file
in modo da non perdere la struttura dell'albero.
Inoltre con un altro programma in c devo recuperare l'albero da file e
ricostruirlo in modo corretto.
Accetto suggerimenti per risolvere il problema.
Ringrazio in anticipo.
Fabio
www.smartdriver.it

 ha scritto nel messaggio 
news:42ca7616...@powernews.inwind.it...

Newsgroup: it.comp.lang.c
Titolo: Re: Fork

 
Se il padre non fa nulla mentre il figlio è in esecuzione, può benissimo
lanciare una semplice wait ...
In caso contrario, devi bloccarti su qualcosa (semaforo, messaggio, o 
qualche altra diabolica IPC ...)

 Ho un programma nel quale avvio un processo (siamo sotto Linux) con fork.
                                                           ^^^^^^
Ti conviene andare su it.comp.os.linux.development. :)
Ciao
--
Slaine Mc Roth dal portatile
Linux User: 312607

 Grazie
Nel codice del padre usa la funzione signal() per far eseguire una
funzione sull'evento della terminazione del figlio, che nel caso specifico
è SIGCHLD.
man signal
void funzioneDaEseguireQuandoMuoreIlFiglio( int u )
{
	...
}
int main ( )
{
	..
	signal( SIGCHLD, funzioneDaEseguireQuandoMuoreIlFiglio );
	..
	fork();
	..
}
Ciao
Matic

 
Se sei sicuro che il figlio o muore entro N secondi oppure non muore piu
da solo puoi chiamare una sleep sul padre subito dopo la fork e fare una
waitpid non bloccante per vedere se il figlio è ritornato.
Per i segnali da inviare puoi servirti di SIGUSR1 e SIGUSR2 se vuoi, li
emetti dal figlio con la funzione kill() e li catchi dal padre con la
funzione signal(). Guarda le manpages per maggiori informazioni
PS: si quota sotto, non sopra.
Ciao.
Matic

 Luca
Posso suggerirti delle letture che non hanno nulla a che fare col fork 
ma che ti sarebbero utili?
http://www.freewebs.com/iosononiubbo/iosononiubbo.htm
http://it.geocities.com/usenetitalia/quoting.html
Martino
-- 
"- in Italia cosa rischia uno che tortura?
- ..Se è una tortura e via, poco.. Se ha anche scaricato musica da 
Internet, quattro anni"
Sergio Staino (Bobo e figlia, maggio 2004)

Newsgroup: it.comp.lang.c
Titolo: problema gtk

Salve. Ho provato ad utilizzare le gtk dal c ma quando importo
l'header gtk.h mi da un sacco di problemi di compilazione. persino
questo semplicissimo programmino da una miriade di problemi.
#include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>
int main(int argc, char **argv) {
	return EXIT_SUCCESS;
}
il problema sta nel fatto che il compilatore da errori di sintassi.
Forse sono sbagliati i flag di compilazione?
OS. SUSE 10.2
COMPILATORE: gcc standard 4.qualcosa
IDE: eclipse/cdt
riga di comando: gcc -I/home/danilorossi/programmi/GTK/include/gtk-2.0
-O0 -g3 -Wall -c -fmessage-length=0
che ne pensate?

 Forse sono sbagliati i flag di compilazione?
No, il problema è che non passi una file per compilare:


Newsgroup: it.comp.lang.c
Titolo: manualistica "C" free


Newsgroup: it.comp.lang.c
Titolo: Sockets c++

Sto utilizzando le socket insieme con il timer di windows (messaggio
WM_TIMER), però molte volte quando minimizzo la finestra del server (che
deve restituire periodicamente una risposta al client) o quando il
client manda molti messaggi contemporaneamente al server, la socket si
"pianta" chiamando continuamente la funzione PumpMessages() della
CSocket, facendo in modo che rimangano sempre messaggi pendenti (evento
OnMessagePending()). In pratica la dialog su cui gira il programma si
blocca e va in un loop infinito. Come è possibile evitare che quando le
sockets eseguono un Receive o un Accept o una Send ecc. (senza
interrompere il timer!!!) blocchino il processo? 



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

Salve a tutti,
 spero di non essere OT...
Qualcuno ha, o mi sa indicare, un tutorial, o altro che dia un'infarinatura 
sui cgi in c?
Ho provato a dare un'occhiatina con google, ma ho trovato di più per il c++ 
che non mi "garba" molto... O meglio non lo conosco...
Grazie in anticipo
saluti
Thanas

 che non mi "garba" molto... O meglio non lo conosco...
http://www.cs.tut.fi/~jkorpela/forms/cgic.html
ciao,
g.

 g.
Ciao
Thanas
Newsgroup: it.comp.lang.c
Titolo: DLL C++ e Visual basic -> Bad calling convention

Ho un proplema con una dll.
Non riesco a richiamare una funzione all'interno della libreria, dove sto
sbagliando, stdcall?
Mentre se richiamo la dll da lotus script va tutto bene.
Allego il codice c e quello vb e quello Lotus Script (lo so che nessuno lo
conoscera'!!). Scusare se avete gia' trattato l'argomento, ma non ho
possibilita' di ricercare lo storico in questo momento.
Grazie
--------------C++ Code----------------
#define W32
#define ERR_BUF_SIZE 512
#include <iostream.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <stdio.h>
#include "lncppapi.h"
char da_eliminare[] = "',.;:?????? ";
unsigned int LUNG1=9;
//extern "C" __declspec(dllexport) char *myCrypt(char *what);
BOOL WINAPI DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return (TRUE);
}
extern "C" __declspec(dllexport) char *myCrypt(char *what){
char *crypted;
char *buffer, *temp,c;
unsigned int pos,i;
buffer=_strdup(what);
while ((pos=strcspn(buffer,da_eliminare)) != 0 && *(buffer+pos) != '\0'){
temp=_strdup(buffer);
*(buffer+pos)='\0';
strcat(buffer,(temp+pos+1));
}
temp=buffer;
while (*temp != '\0'){
pos = (int) *temp;
*temp = tolower(pos);
temp++;
}
crypted = (char *)malloc(12);
for (i=0; i<LUNG1; i++){
if (i<strlen(buffer)){
c=*(buffer+i);
}else{
c='a'+(i-strlen(buffer));
}
if (!isalpha(c+1)){
c-=2;
}
crypted[i] = c+1;
}
_itoa((int)crypted[0],(crypted+LUNG1),10);
crypted[12] ='\0';
return crypted;
}
------------------C++ code End------------------------
-----------------Lotus script code---------------------
Declare Public Function myCrypt Lib "c:\genpwd.dll" (Byval utente As
String) As String
pass$ = myCrypt("MyCNName")
-----------------Lotus script code end-----------------
-----------------Vb6 code----------------------------------
Private Declare Function myCrypt Lib "c:\genpwd.dll" (ByVal utente As
String) As String
Private Sub Command1_Click()
Dim pippo As String
Dim outp As String
pippo = "Guido"
outp = myCrypt(ByVal pippo)
End Sub
-----------------------Vb6 code end-------------------------------
--
Posted from 
village004.village.telecomitalia.it
 [195.120.183.135]
via Mailgate.ORG Server - 
http://www.mailgate.org


prova a dichiarare la funzione che devi esportare come "pascal" o
"_pascal", a me aveva funzionato.
Cosě facendo usi la pascal calling convention che dovrebbe essere quella
predefinita in Windows
Newsgroup: it.comp.lang.c
Titolo: Sorgente per spedire e-mail sotto dos.

Sono un programmatore c/c++ e sto cercando un sorgente o cmq un manuale
o un tutorial che mi insegni a creare dei programmi sotto Dos per
spedire e-mail senza tuttavia usare windows.Uso il compilatore Borlandc
3.1
Vi rinrazio anticipatamente per il vostro aiuto e vi mando un salutone
a tutti!
Salvatore.
http://members.xoom.it/GiulivoKen/index.htm
_
NOS...@tin.it
Per evitare eventuali spamming(Messaggi inutili e fuori tema!),se vuoi
contattarmi sostituisci al posto della parola _NOSPAM_ la parola tygiul
puoi fare anche copia e incolla.
Sent via Deja.com 
http://www.deja.com/
Before you buy.

 3.1
prova su questo
sito:
http://www.geocities.com:0080/SiliconValley/Vista/6552/dlinks.html
tra le network libraries (purtroppo per te é un sito per
djgpp....tuttavia...)

 3.1
Sei OT su questo NG: prova su it.comp.programmare
--
Ivan Molella
__LINUX__ the choice of the __GNU__ generation
icq# 97960484

Newsgroup: it.comp.lang.c
Titolo: Monitorare porta seriale senza utilizzare un cavo. Possibile?

Ciao e scusate se la domanda è malposta.
Dovrei intercettare le scritture su una porta seriale in ambiente Windows.
La porta seriale è connessa con un cavo ad una strumentazione e il programma
che devo sviluppare deve intercettare queste "scritture" su seriale per poi
farne delle elaborazioni.
Sapete se si può fare?
Grazie.

 ha scritto nel messaggio
news:9v2egg$cdc$1...@newsserver.cilea.it...


 altri sono troppo vecchi e lavorano solo su msdos.
Non ti ricordo qualche nome? Io provo a cercare in rete ma mi servirebbe
qualcosa a livello sorgente per inserirlo nel mio programma. Purtroppo non
posso usare altre porte seriali. L'unica cosa su cui posso lavorare è
riuscire a "spiare" quella seriale collegata...
Se a qualcuno viene qualche idea... Aiuto!
Grazie a tutti.

 Sapete se si puņ fare?
Sul sito 
www.sysinternals.com
 esiste un programma di nome portmon.exe che fa
quello che hai chiesto.
Ciao
Giuseppe

Newsgroup: it.comp.lang.c
Titolo: Librerie statiche

Salve avevo bisogno di un aiuto.
Sto provando a realizzare una libreria statica di funzioni che uso
abitualmente. Uso come compilatore mingw32 ma ho un problema.
Quando faccio il link finale con il comando:
ld -o LibDebug.exe main.o -lmiaLib
ottengo il seguente errore
...
ld.exe: warning: cannot find entry symbol _mainCRTStartup; defaulting to
00401000
main.o(.text+0x1b):main.c: undefined reference to `_alloca'
main.o(.text+0x20):main.c: undefined reference to `__main'
main.o(.text+0x44):main.c: undefined reference to `system'
...
Probabilmente devo linkare qualche altra librerie di sistema ma non so
quale. L'applicazione gira sotto console.
Qualcuno sa darmi qualche consiglio?
Vi ringrazio anticipatamente.
Giovanni
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/
Newsgroup: it.comp.lang.c
Titolo: Cerco una guida c89

Salve a tutti, sono studente d'informatica, mi dovrei finir a
preparare un esame su programmazione C.
Il bello è che il docente fa particolare attenzione allo standard c89,
mi sapreste consigliare una valida guida su tale standard??
Grazie tante

Daniele Nasuti ha scritto:

Sbatterti un attimo ? Uso di Google? Wikipedia ? no????
Va be, parti da:
http://clc-wiki.net/wiki/The_C_Standard
Lo standard e' a pagamento, vedi un po' te,
se no, puoi usare il rationale, o il draft come riferimento.
B.

On 22 Set, 14:24, brix99luftballons

Caro Brix ti rigrazio del link cmq se ho chiesto un aiuto è perchè in
rete non sono riuscito a trovare una documentazione veramente valida.
Cmq grazie

 Cmq grazie
http://www.oucs.ox.ac.uk/documentation/userguides/c/l922.pdf
http://members.aol.com/wantondeb/
--
enos76

Newsgroup: it.comp.lang.c
Titolo: Debugger per C

Ciao a tutti,
vorrei sapere se esiste un debugger user-friendly per il C che consenta di
eseguire
il programma compilato e allo stesso tempo visionare step by step il
relativo codice sorgente.
Vi informo che utilizzo come OS un AIX 4.1.5 e il relativo sistema di
sviluppo.
Ringrazio quanti vorranno rispondermi.
---------------------------------------------
Emiliano Gigliesi
Ufficio EDP
FORNARI SPA
62012 Civitanova Marche (MC)
Italy
Tel. 
+39-0733-895511
Fax. 
+39-0733-895518
emiliano...@fornari.com
---------------------------------------------

 relativo codice sorgente.
Io ho istallato per i miei utenti (solaris, dec-osf, linux) DDD (Data
Display Debugger); e' un'interfaccia X11 (piu' esattamente OSF/Motif)
verso due o tre dei debuggers line-oriented piu' usati, tra cui "gdb".
Personalmente non lo uso, ma qui sono soddisfatti; la versione
corrente e' la 3.1.90, il sito canonico 
ftp.ips.cs.tu-bs.de
 in
/pub/local/softech/ddd/src.
Se non hai un Motif, ne esiste una versione freeware che si chiama
'lesstif' (vedi i pointers nella documentazione di DDD).
E, se vuoi dare un'occhiata alla documentazione, nelle nostre pagine
web di gruppo (
http://wwwcdf.pd.infn.it/localdoc.html
) mantengo un
archivio di 112 manuali software, tra cui quello di DDD (in postScript).
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

Newsgroup: it.comp.lang.c
Titolo: Decompilatore C

Conoscete un sito da cui scaricare un decompilatore per C?

 ha scritto nel messaggio
news:8kshvf$uos$1...@lacerta.tiscalinet.it...


 wrote in message 8ksuel$863
| Non esistono decompilatori C....e quelli che esistono sono di scarsissima
| utilità.
Un po' contraddittoria, 'sta cosa... ;)
Comunque, prova
Sudden Discharge
http://www.suddendischarge.com/Disassemblers.html
csee university of quebec - decompilation
http://www.csee.uq.edu.au/csm/decompilation/
http://www.csee.uq.edu.au/~csmweb/decompilation/

 ha scritto nel messaggio
news:8ksv06$8jf$1...@lacerta.tiscalinet.it...

Newsgroup: it.comp.lang.c
Titolo: Rieccomi... sono tornato

Salve ragazzi vi ricordate di me??? nooooooooo? :-((
cmq ho creato una rubrica ... magari vi posterò in seguito anche il codice
cosi gli date un occhiata. Cmq vorrei fare un confronto con un' altra
rubrica se è possibile... quindi se avete creato anche voi un rubrica
mandatemi il codice a 
kli...@libero.it
 thx...
Un ultima cosa: per l' ordinamento di numeri all' interno di un array quale
algoritmo è preferibile utilizzare?
---
Ciao by JSMR


A meno di esigenze particolari e' meglio usare l'algoritmo
quicksort, che e' gia' disponibile col nome di qsort nella stdlib
ciao,
g.

hai realizzato anche una gui o una rubrica testuale ?


testuale... ma non č standard... vorrei standardizzarla... anche se non č
facile...
---
Ciao by JSMR

 quicksort, che e' gia' disponibile col nome di qsort nella stdlib
Una nota: probabilmente la funzione qsort() esegue un ordinamento 
efficiente in tutte le implementazioni, ma non e` garantito dallo 
standard che si tratti effettivamente dell'algoritmo quicksort (come 
d'altronde non e` garantito che bsearch() effettui davvero una ricerca 
binaria).
-- 
Enrico `Trippo' Porreca

Newsgroup: it.comp.lang.c
Titolo: File & C

Dovrei costruirmi un programmino che tra le altre cose edita dei file e mi
son sorte un po' di domande :
1)come faccio a cancellare una parte centrale del testo contenuto in un
file? devo copiare tutto ciň che sta sotto piů in alto di n posizioni? non
esiste qualcosa di un po piů elegante?
2)dato che una volta aperto il programma fa varie modifiche al file durante
l'esecuzione, mi conviene copiarlo in memoria e poi alla fine riversarlo sul
disco o dato che tanto l'os bufferizza non mi cambia niente come prestazioni
e uso regolarmente fread, fwrite ... ?
3)nel caso copiassi il contenuto in un array in memoria, sorge lo stesso
problema del punto1, se volessi cancellare una parte centrale del testo
dovrei per forza spostare ogni elemento a sx di n posizioni?
Grazie 1000
Ciao
Wezzy

 dovrei per forza spostare ogni elemento a sx di n posizioni?
SI, per la natura stessa della struttura "array": l'accesso ha costo
computazionale costante O(1); per contro, le operazioni che chiedi hanno
un costo lineare O(n). In una lista concatenata e' il contrario:
l'accesso e' sequenziale, quindi O(n), l'inserimento e la cancellazione
hanno costo costante O(1).
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c
Titolo: Colori

Sapete dirmi se è possibile scrivere un carattere
o una stringa su schermo, con un colore diverso?
Se si come?
Intendo, senza utilizzare librerie esterne come
conio o ncurses.
-- 
My OS: Linux Red Hat 7.2
ICQ #147054457
Linux User #276372
Linux Machine #159118

conio o ncurses.
In modo standard no.
Le librerie di cui parli ti forniscono 1 astrazione della gestione dei
terminali.
Se hai un terminale ANSI puoi provare a seguire queste indicazioni:
http://www.isthe.com/chongo/tech/comp/ansi_escapes.html
Ovviamente nulla ti garantisce che funzioni sul tuo terminale.
-- 
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: [NEWBIE] Problemi coi puntatori

Ciao amici,
sono nuovo a questo NG e sono nuovo anche al C. ;-)
Ho avuto un po' di problemini con i puntatori e vorrei sapere se qualcuno
puņ aiutarmi spiegandomi come funzionano e a cosa servono gli operatori * e
&, e magari mi aiutasse a risolvere il seguente esercizio.
Grazie mille a chinque mi aiuti!
Ciao
Alessandro
------------------------------
Per favore rispondete anche per email a: 
ale_g...@iol.it
------------------------------
ESERCIZIO
Date le seguenti dichiarazioni:
float i, *p, **q;
int x;
dire quali delle seguenti espressioni sono legali e quali non, spiegandone
il motivo.
p = *q
*q = &i
i = *p + *q
i = *p + **q
*q = &*p
i = (&*)p
p = &(i+i)

p = &(i+i)
Uhm... i+i dà un cost int come risultato, di cui si può leggere l'indirizzo,
però assegnarlo ad un ptr ad un float mi sembra una cosa illegale.
Lanugo

p = &(i+i)
No. Non e' possibile calcolare l'indirizzo dell'espressione.
--
Andrea Laforgia (ICQ 87230455)
------------------------------ 
#exclude <windows.h>

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

Ciao a tutti, qualcuno conosce dei siti Internet dove poter
trovare degli esercizi interessanti? 
Grazie.
Franco
-- 
Non si svende, non si svende, neanche se non funziona... 
(CCCP Fedeli Alla Linea)

 ha scritto nel messaggio
news:pan.2003.01.09....@jumpy.it...


http://twiki.dsi.uniroma1.it/twiki/view/Programmazione1/WebHome


http://www.dsi.unive.it/~prog1/esercitazioni_settimanali.html
Dopo una rapida occhiata non posso resistere all'impulso
di sconsigliare *vivamente* il materiale presente su
questo sito.
Andrea
Newsgroup: it.comp.lang.c
Titolo: protocollo midi

Ciao a tutti,
sono un programmatore ma anche un musicista. Sto mettendo su un programma di
editing musicale ed avrei bisogno delle specifiche dettagliate del
protocollo midi.
Purtroppo il protocollo non è freeware, per cui, mi chiedevo se tra di voi
c'è qualcuno che ne ha una copia digitale o un documento che sia simile
all'originale.
Grazie mille
--------------------------------
Inviato via 
http://usenet.libero.it

 all'originale.
sei [OT]
le specifiche del midi le trovi a:
http://www.wotsit.org/search.asp?page=4&s=music
antonio


Grazie mille, sei stato veramente prezioso.
Perchè sono OT?
Un protocollo digitale non dovrebbe essere di interesse ad un programmatore
c?
Il fatto che si tratti di una specifica che implica la musica la esclude
dalla programmazione in c?
In ogni caso chiedo scusa al gruppo.
Ciao.


 Perchč sono OT?
http://www.news.nic.it/manif/it.comp.lang.c.txt
comunque mi pare che tu abbia chiesto anche nel gruppo giusto:
it.comp.musica.midi
ciao
-- 
Gerolamo
** Articolo inviato tramite i servizi gratuiti di 
www.x-privat.org
 **

 all'originale.
http://www.wotsit.org/search.asp?page=4&s=music
basterebbe leggere i threads invece che scriverne solo di nuovi, poco sopra
ho dato un link simile.....
Tommy

 > Perchè sono OT?

Questo significa che non è ammissibile che un argomento di discussione possa
interessare più gruppi?
Scusami, non è per fare polemica, è solo che non frequento da molto i
NewsGroup e sto cercando di capire.
Ho letto lo statuto e mi sembra (mi posso sbagliare) che un protocollo
digitale stia alla base di un algoritmo di lettura dati e generi
implicitamente la necessità di fare delle scelte precise al riguardo dei
sistemi di sviluppo.
Correggimi se sbaglio.



Hai perfettamente ragione Tommy.
Purtroppo ho effettuato una ricerca solo per la parola "midi".
La prossima volta utilizzerò più tempo a spulciare tutti i threads.
Ciao.


 Correggimi se sbaglio.
Si, ma, se la domanda diventa pertinente al protocollo e non al linguaggio C
e per di più esiste un newsgroup dedicato al protocollo stesso, il posto
più pertinente è proprio il NG dedicato.
Aggiungo che 2 NG (a basso traffico) che dovrebbero seguire un po' tutti
gli utenti di it.* sarebbero it.news.annunci e it.faq (quest'ultimo quando
si inizia...)
Tutto questo, ovviamente,  `In My Humble Opinion'.
Imposto il follow up su it.news.aiuto (le risposte a questo post vengono
spedite li)
ciaociao!



Ok, grazie mille per le delucidazioni.
Comunque ho già cominciato il lavoro sul protocollo grazie al tuo link ed ho
estrapolato già tutti gli elementi principali di un file mid.
Ti farò sapere.
A presto.

Newsgroup: it.comp.lang.c
Titolo: Aiuto novellino

ciao a tutti, sono nuovo del news e mi sto' adentrando da poco nel
linguaggio c.     ......e ora avrei un problema:
es. stupido:
se voglio fare la somma di due numeri faccio a= b+c
ma come faccio se voglio ridefinire l'operazione di somma (ad es. a
utilizzare la parolla SOMMA anziche +) quando sono in modalita' run time.
Grazie.


ICQ #34602650

utilizzare la parolla SOMMA anziche +) quando sono in modalita' run time.
int somma ( int b, int c )
{
    return ( b + c ) ;
}
int main()
{
    int a = somma ( 2, 3 ) ;
}
Se invece volessi ridefinire somma in modo indipendente dal tipo di
risultato :
void somma ( int b, int c, int * a ) 
{
     *a = b + c ;
}
int main()
{
    int a ;
 
    somma ( 2, 3, &a) ;
}

 }
Secondo me l'indipendenza dal tipo del risultato si ottiene, entro certi
limiti, con la prima forma in quanto scrivendo, ad esempio
long a = somma( 2, 3 );
il compilatore applicherà una conversione implicita da int a long. La
seconda forma invece causa per lo meno un warning (ma secondo me sarebbe
meglio un errore) per il passaggio di un long * dove la funzione si
aspetta un int *.
EMG

Grazie 1000

long a = somma( 2, 3 );
non dovrebbe essere qualcosa del tipo:
#define somma(a,b); return a+b;
o simile?
Newsgroup: it.comp.lang.c
Titolo: Vettore di puntatori

Mi chiedevo se è possibile creare un vettore di puntatori,
io c'ho provato, ma non va, questo è il codice:
----------------------------------------
#include <stdio.h>
typedef int *p_int;
p_int func(int);
int main()
{
        int i,j;
        p_int vett[3];
        for(i=0;i<3;i++)
        {
                j = (i+1)*10;
                vett[i]=func(j);
        }
        printf("Primo valore:   %d\n",*vett[0]);
        printf("Secondo valore: %d\n",*vett[1]);
        printf("Terzo valore:   %d\n",*vett[2]);
}
int *func(int a)
{
        int *local_a;
        *local_a = a;
        return local_a;
}
----------------------------------------
-- 
My OS: Linux Red Hat 7.2
ICQ #147054457
Linux User #276372
Linux Machine #159118

 io c'ho provato, ma non va, questo è il codice:
L'errore è all'interno della funzione func() in cui definisci il puntatore
local_a senza riservagli memoria. Sostituisci l'istruzione con:
    int *local_a = malloc(sizeof(int));
A questo punto devi però includere anche il file header stdlib.h.
Ultima cosa, un warning: la funzione main() deve riportare un intero.
Maurizio.

...
 int *func(int a)
 {
         int *local_a;
/*********** aggiungere : ************/
         local_a = (int *) malloc ( sizeof (int ) ) ;
 
         if(local_a) 
/*************************************/
            *local_a = a;
         return local_a;
 }
ciao 
luca

Ciao Maurizio., alle 13:35, giovedì 27 giugno 2002, su it.comp.lang.c hai 
scritto:

Adesso funziona! Grazie!
Ancora una cosa: dopo la modifica mi da:
warning: inizialization makes pointer from integer without a cast,
è normale?


 è normale?
Se magari indichi il punto dove lo dà non ti fa male, e ci aiuta a capire.


 e` normale?
#include <stdlib.h>
Sul perche` ci sono state (letteralmente) decine di post.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Windows /win'dohz/ n. : thirty-two  bit extension and graphical shell to
a sixteen  bit patch to an  eight bit operating system  originally coded
for a  four bit microprocessor  which was  written by a  two-bit company
that can't stand a bit of competition.

 without a cast, è normale?
Forse non hai messo:
    #include <stdlib.h>
Maurizio.
Newsgroup: it.comp.lang.c
Titolo: un aiutino.... funzione per arrotondare

...ciao mi servirebbe la funzione che arrotonda per difetto o per
eccesso un numero.... un salutone
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 eccesso un numero.... un salutone
floor() e ceil(). Se ti va bene un intero come risultato.
per l'uso RTFM (read the Fine manual).
C:\>iao Angelo


ciao grazie....


Altrimenti se l'arrotondamento non è quello classico,come qualcuno disse a
me:
prendi il tuo float, ci agigungi 0,5 e lo metti in un intero.
Ciao
Claudio

prendi il tuo float, ci agigungi 0,5 e lo metti in un intero.
Una piccola aggiunta.
Dalle FAQ
14.6:	How do I round numbers?
A:	The simplest and most straightforward way is with code like
		(int)(x + 0.5)
	This technique won't work properly for negative numbers,
	though (for which you could use something like
	(int)(x < 0 ? x - 0.5 : x + 0.5)).
-- 
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."

 (int)(x < 0 ? x - 0.5 : x + 0.5)).
Oppure:
    floor(x + 0.5)
che va bene sia per numeri positivi che negativi.
Maurizio.

 C:\>iao Angelo
attenzione però che il tipo restituito con floor e ceil mi pare sia un
double e non un int come uno si aspetterebbe...
Ciao
     Paolo


 Ciao
Togli pure il "mi pare".
Intero nel senso che dopo la virgola c'e' 0, effettivamente il valore
ritornato da ceil e floor e' un double.
A mia scusante posso citare K&R che dice che floor restituisce "il
massimo intero non maggiore di x, espresso come double".
La parola intero c'era. :-)
C:\>iao Angelo

Newsgroup: it.comp.lang.c
Titolo: Operazioni Booleane a 32-Bit

Salve, devo utilizzare delle operazioni booleane su dei dati a 8 bit.
Es:
char a=5;
a=a&2;
Per incrementare la velocita' e' possibile raggrupparle in gruppi da 4 e
formare cosi' 32 bit?
Qualcuno sa come si fa?
Grazie a tutti.

formare cosi' 32 bit?
Supponendo char -> 8 bit (long e' sempre *almeno* 32 bit) :
unsigned char a, b, c, d ;
unsigned long x ;
x = a << 24 + b << 16 + c << 8 + d ;
Pero' tieni presente che se e' vero che il tipo char e' lungo sempre 1
byte per ogni implementazione, non e' detto che il byte in questione
sia lungo esattamente 8 bit.

 sia lungo esattamente 8 bit.
In che senso?
--
Marco Iannaccone
ICQ: 18748121
IRC: Tolkien
e-mail: 
captai...@ussvoyager.com

 In che senso?
Nel senso che anche se int e' sempre trrattato come intero che non puo' 
contenere valori frazionari,le sue dimensioni sono diverse sulle varie 
macchine.A;lcuni compilatori riservano 4 nyte per un int,altri altri tre 
altri addirittura un byte.Inoltre la dimensione di un byte non e' 
costante:nella maggior parte delle macchine un byte è costituito da 8 
bit,ma esistono eccezioni anche a questa regola.
Cmq se usi un compilatore conforme allo standard ANSI puoi andare 
tranquillo.Infatti l'ANSI stabilisce che un byte deve essere composto da 
almeno 8 bit e che il tipo int deve essere memorizato su almeno 16 bit e 
cmq deve rappresentare il "formato" naturale per il caclolatore,cioe' il 
numero di bit che la cpu manipola normalmente in una singola istruzione.
Ciao

In che senso?
Nel senso che la lunghezza in bit di un byte e' dipendente
dall'implementazione.