mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: implementare asm sul c++ builder

Ciao, utilizzo come compilatore il C++ builder 5.0 della Borland per
scrivere programmi in c...
Vorrei imparare l'assembler ma sono un principiante assoluto.
Posso implementare, per fare pratica, routine che scriverò in assembler
all'interno di un programma scritto in C usando questo compilatore?
O forse esistono dei compilatori fatti apposta per questo tipo di
linguaggio... Se si, mi dite qual'è quello che devo andare a cercare?
Ciao e grazie in anticipo!

 ha scritto nel messaggio
news:8t6811$n0i$1...@news.mch.sbs.de...


 wrote in message
8ubbv8$crj$1...@fe2.cs.interbusiness.it...


Newsgroup: it.comp.lang.c
Titolo: [OT] ng su microprocessori

Ciao a tutti,
Scusate l'OT.. Sto cercando invano un ng, o un forum, una mailing list dove
si discuta di programmazione (in C ovviamente, o assembler) di
microprocessori, nel mio caso della famiglia ARM (anche se uso spesso dei
PIC).
grazie mille
-- 
g4b0, linux user n. 369000
http://gabo.homelinux.com

 PIC).
it.elettronica.digitale
dove hai cercato scusa? :)
cmq si parla di tutto, anche di ARM.
Qualcuno ti risponderà sicuramente.
ciao
coals

coals wrote:

Grazie, sei stato gentilissimo!


coals wrote:

... google mi risponde così:
Nessun gruppo corrisponde a it.elettronica.digitale
mi sapresti dire il nome esatto, please? Cmq ora verifico gli altri che ho
trovato..


 trovato..
si scusa hai ragione, ma se vai su google gruppi e gli dai la ricerca te lo 
da.
it.hobby.elettronica.digitale
:)
ciao
coals

Newsgroup: it.comp.lang.c
Titolo: FAQ di comp.lang.c

Dove trovo la FAQ downloadabile del nwsgrp comp.lang.c (e magari anche
quella di comp.lang.c++) ????
Grazie,
Tdx

 quella di comp.lang.c++) ????
La FAQ del C la trovi all'indirizzo
http://www.eskimo.com/~scs/C-faq/top.html
 or 
http://www.faqs.org/faqs/
Quella del C++ (ridotta) invece al
http://www.cerfnet.com/~mpcline/c++-faq-lite/
EMG

 ne ho vista pure una in 
www.programmazione.it

Newsgroup: it.comp.lang.c
Titolo: CTRL-ALT-CANC

Come posso resettare il pc, utilizzando un semplice programma in C
(compil:Turbo C) che applichi la combinazione dei tasti CTRL-ALT-CANC?
Grazie a chi saprà darmi un aiuto.
Mr.T

Ti basta effettuare un salto assoluto all'indirizzo FFFF:0000. Per un
warm-boot equivalente a ctrl-alt-canc devi memorizzare 0000h nella locazione
0040:0072.
/*
**  Public domain demo to reboot a PC
*/
#ifdef __TURBOC__
 #define FAR far
#else
 #define FAR _far
#endif
short FAR *bios_post = (short FAR *)0x00400072;
void (FAR * boot)(void) = (void (FAR *)())0xffff0000;
void reboot(warm)
{
      if (warm)
            *bios_post = 0x1234;
      else  *bios_post = 0;
      boot();
}
#ifdef TEST
#include <stdio.h>
main()
{
      puts("The computer should do a cold start");
      reboot(0);
      return 0;
}
#endif /* TEST */
Newsgroup: it.comp.lang.c
Titolo: free elemento lista

Salve a tutti!
Ho il seguente problema. Io creo una lista FIFO nella quale inserisco
elementi con una funzione,ma  quando prendo un elemento (con un'altra
funzione) per aggiornare la lista assegno al puntatore head il valore che
aveva head.next (che un puntatore ad un elemento dello stesso tipo). Facendo
in questa maniera però non libero le risorse che occupava il vecchio
elemento, come posso liberarle?
Mauro

 elemento, come posso liberarle?
mettiamo che la funzione che prende il primo elemento sia:
myeltype* GetFirst();
e tu scriva:
myeltype *ptr = GetFirst()
ptr->...
ptr->..
E a questo punto č compito di chi ha prelevato l'elemento fare
free(ptr);
--- bye

 elemento, come posso liberarle?
Beh, dipende da come e` allocato il nodo della lista, e` un problema di
ownership. Se il dato contenuto non e` allocato dinamicamente (oppure in
maniera indipendente dal contenitore) puoi fare una free subito dopo
l'aggiornamento di head.  Altrimenti usi la free() quando hai finito di
usare il dato.
Il primo caso e` qualcosa del genere:
struct list_node {
        struct my_data *data;
        struct list_node *next;
};
struct list_node new_node(struct my_data *d) {
        struct list_node *n;
        n = malloc(sizeof(*n));
        if (!n)
                return NULL;
        n->next = NULL;
        n->data = d;
}
struct my_data *get_data_from_head(void) {
        struct list_node *n;
        struct my_data *d;
        n = head;
        if (!n)
                return NULL;
        head = head->next;
        d = n->data;
        /* La struttura list_node contenitore non e` piu` necessaria, la
         * libero subito.
         */
        free(n);
        return d;
}
Il secondo caso sara`:
struct list_node {
        struct my_data data;
        struct list_node *next;
};
struct list_node new_node(struct my_data *d) {
        struct list_node *n;
        n = malloc(sizeof(*n));
        if (!n)
                return NULL;
 
        n->next = NULL;
        /* Copio i dati nella struttura */
        n->data = *d;
        return n;
}
struct list_node *get_data_from_head(void) {
        struct list_node *n;
        n = head;
        if (!n)
                return NULL;
        head = head->next;
        return n;
}
Nel tuo codice chiamerai get_data_from_head() per ottenere il primo nodo
della lista. I tuoi dati saranno in n->data e potrai liberare la
struttura solo quando avrai finito di usarla.
Luca
-- 
Home: 
http://kronoz.cjb.net
Software is like sex; it's better when it's free.
Linus Torvalds
Newsgroup: it.comp.lang.c
Titolo: C e seriali

Ciao a tutti, stavo pensando di scrivere un programma (ammenochè non
ne esistano di già pronti) per comunicare con le seriali, e vorrei che
funzionasse sia su win che su Linux. Secondo voi, come potrei fare?
Mi sembra che la borland produca dei tool perfar sì che un programma
funzioni su ambedue i sistemi operativi, vo che ne dite?
CIao e grazie,
Alberto.

 ...(ammenochè non ne esistano di già pronti) ...
Come minicom?



Intendi l'emulatore di terminale per sistemi unix like?

Newsgroup: it.comp.lang.c
Titolo: winsock e win aiuto

Salve,
sto programmando in c su una piattaforma windowsXP, il processore č un
pentium 400;
Volevo imparare un po' a programmare utilizzando il winsock, ho provato a
compilare un esempio fornito dalla libreria MSDN insomma quella di Microsoft
visual c++ 6.0, ma mi segnale questi errori
Text1.obj : error LNK2001: unresolved external symbol __imp__WSACleanup@0
Text1.obj : error LNK2001: unresolved external symbol __imp__closesocket@4
Text1.obj : error LNK2001: unresolved external symbol __imp__recv@16
Text1.obj : error LNK2001: unresolved external symbol __imp__send@16
Text1.obj : error LNK2001: unresolved external symbol __imp__connect@12
Text1.obj : error LNK2001: unresolved external symbol __imp__socket@12
Text1.obj : error LNK2001: unresolved external symbol __imp__htons@4
Text1.obj : error LNK2001: unresolved external symbol
__imp__gethostbyaddr@12
Text1.obj : error LNK2001: unresolved external symbol __imp__inet_addr@4
Text1.obj : error LNK2001: unresolved external symbol __imp__gethostbyname@4
Text1.obj : error LNK2001: unresolved external symbol
__imp__WSAGetLastError@0
Text1.obj : error LNK2001: unresolved external symbol __imp__WSAStartup@8
Debug/Text1.exe : fatal error LNK1120: 12 unresolved externals
Error executing link.exe.
Il samples č:
* simplec.c - Simple TCP/UDP client using Winsock 1.1
come faccio?, ci sarebbero altri esempi su internet, possibilmente in
italiano di programmazione del winsock! su piattaforma windows?, anche se in
inglese fa niente...
Chi mi potrebbe dare una mano, sono un po' incasinato.
Grazie tante e buone feste a tutti :)
--
Marco Spiga

Grazie tante e buone feste a tutti :)
questo problema é relativo a it.comp.programmare.win32.....
cmq a titolo informativo é dovuto alla tua dimenticanza..
vai tra le opzioni, dove elenca le librerie che saranno incluse,
aggiungi wsock32.lib 
Antonio
Newsgroup: it.comp.lang.c
Titolo: [?]In una matrice di char...'\0'

Salve a tutti , (uso Djgpp)in una matrice di static char pippo [13][3]={ ,
se la inizializzo con
"1x2",
 ...};
 il carattere '\0'  , lo devo trovare in tutte le posizioni [n][3] , oppure
solo [12][3] , e [13][0,1,2,3]
chiedo questo perche , quando faccio stampare  la matrice con
for(a1=0;a1<=13;a1++){
z5=0;
for(a2=0;a2<=3;a2++){
if(schedina[a1][a2]=='\0')z5+=1;printf("Riga=[%2d][%2d]=%d ",a1,a2,z5); }
printf("\n");}
trovo il char '\0' solo nella posizione [12][3] e nelle altre che riguradano
[13][0,1,2,3,] ci sono caratteri sporchi
Chi mi sa dire qualchecosa?
Grazie
Ciao             Roberto

[13][0,1,2,3,] ci sono caratteri sporchi
[12][3] e' gia' fuori dalla tua matrice... invece di '\0' potresti
trovarci benissimo un "carattere sporco". Anche l'intera riga [13]
e' fuori dalla matrice.
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff
Newsgroup: it.comp.lang.c
Titolo: DLL in C

1) Vorrei creare una DLL in Ansi-C per importarla poi in Visual Basic. È
possibile? Credo ovviamente di sì, ma non so come.
2) Questa DLL a sua volta si dovrebbe basare su una libreria esterna.
Infatti, inserivo questa libreria solo in fase di complilazione quando
creavo l'exe-standard (quello che ora vorrei far divenire una DLL)
Grazie a chiunque mi sappia dare una mano.
--
Luca
_____________________________________
sha...@ANTISPAMinwind.it
Per chi volesse scrivermi personalmente,
tolga "ANTISPAM" dal mio indirizzo.

Esiste un libro della Mondadori "Da Visual Basic a C++" che spiega in
dattaglio proprio questo.
Ciao
Giuseppe
"Luca" <sha...@ANTISPAMinwind.it> ha scritto nel messaggio
news:%xSA9.30135$8E3.8...@twister2.libero.it...


1) Vorrei creare una DLL in Ansi-C per importarla poi in Visual Basic.
it.comp.programmare.win32

 creavo l'exe-standard (quello che ora vorrei far divenire una DLL)
Nessun problema.
-- 
---
In silenzio anche un idiota sembra intelligente. Ma non c'è problema,
l'idiota vuol sempre dire la sua.

Newsgroup: it.comp.lang.c
Titolo: sqrt con gcc

Non riesco a fare la radice di un numero, sqrt(num), con gcc.
Non credo serva sapere versione e caratteristiche dei pacchetti
installati, comunque uso l'installazione standard Linux
Red Hat 5.0 ... segue riga di comando, messaggio di errore e 
codice.
cc -ansi -Wall radice.c
.....
/tmp/cca050911.o: In function `main':
/tmp/cca050911.o(.text+0x29): undefined reference to `sqrt'
.....
/* radice.c
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>  /* per sqrt() */ 
void main( void )
{
        double num = 9;
        double d =0;
        d = sqrt( num );
        printf("La radice quadrata e: %f\n", d );
        exit(0);
}
--
Automatic posted from 
bologna.nettuno.it
 [193.43.2.1]
via Mailgate Server - 
http://www.mailgate.org

cc -ansi -Wall radice.c
Manca il -lm, per dirgli di usare la libreria matematica.
Aggiungilo, e le cose dovrebbero migliorare.
Alex

On 16 Aug 1998 13:04:01 +0200 Franco Martelli wrote:
: Non riesco a fare la radice di un numero, sqrt(num), con gcc.
: Non credo serva sapere versione e caratteristiche dei pacchetti
: installati, comunque uso l'installazione standard Linux
: Red Hat 5.0 ... segue riga di comando, messaggio di errore e 
: codice.
: cc -ansi -Wall radice.c
Devi linkare la libreria matematica (aggiungi lo switch -lm)
Ciao.
-- 
-------------------------------------------------------------------
     Roberto Tagliarino
 
roberto.t...@multiwire.net
-------------------------------------------------------------------

cc -ansi -Wall radice.c
cc -ansi -Wall radice.c -lm
La math lib non viene inclusa di default, va indicata sulla linea di 
comando.
-- 
Warning!
Don't send any mail for me at my from: or replayto: addresses ;
I just kill the mail over there without reading!
Newsgroup: it.comp.lang.c
Titolo: Compilazione con Visual C

Ragazzi...qualcuno sa cosa significa l'avviso "Error spawning cl.exe" in
fase di compilazione?
Faccio presente che nel mio progetto non esiste menzione alcuna del file
cl.exe
Aiutoooooooooooooo
Damiani "Bromarock" Omar

 cl.exe
Può darsi che sia un applicazione che viene lanciata per compilare il tuo
sorgente. CL mi suggerisce C link.
Prova a reinstallare lo strumento.
Ciao.

Newsgroup: it.comp.lang.c
Titolo: array vs. puntatori

Salve a tutti!
Ho un dubbio circa le prestazioni, in termini di tempi di calcolo, tra l'uso
dell'indicizzzione di un array e l'aritmetica dei puntatori.
con un esempio:
    double *array;
    /* alloco l'array con malloc()
    for(n=0;....)
1.        array[n]=..
2.       *(array+n)=....
Il libro che uso come guida (non vi dico qual è perché altrimenti mi
"sputate", essendo l'autore uno dei meno apprezzati, ma ormai l'ho comprato
e me lo tengo) dice che la soluzione (2) può essere più veloce.
Dalle prove che ho fatto non ho notato differenze, o quanto meno differenze
sostanziali.
A voi quale risulta essere il metodo migliore in termini di velocità di
calcolo?
Grazie 1000
--
Ciao, Gianandrea

 Il libro che uso  <snip> dice che la soluzione (2) può essere più veloce.
Sono perfettamente equivalenti.
Un dubbio sulla velocita' puo' venire in un caso come questo:
char array[100], *scan=array+99;
int count;
for(count=100;count--;){
  1) array[count]=count;
  2) *scan--=count;
}
Qui si evidenzia meglio la differenza nell'uso dell'array, in 1)
viene ricalcolato l'address di lvalue e quindi eseguito
l'assegnamento, mentre in 2) si assegna direttamente dall'lvalue gia'
presente.
In mancanza di ottimizzazioni il 2) e' piu' veloce, pero' un buon
compilatore rileva questi particolari e quindi usa il metodo 2) anche
se hai scritto il codice usando 1)
In sostanza, e' meglio il metodo 1), perche' piu' chiaro da leggere.
Ciao, Andrea
-- 
 _     /°#     ----------------+--------------
°  \  /        Andrea          | arimicci @@
   |++~|            Rimicci    |  aritaly. com
    \ /  --------- OS/2 V5 "Phoenix" ----------
     |   The MIDI JukeBox:
    _|_        
http://www.aritaly.com/eng/midi/

 calcolo?
Per quel che ne so, non c'e' differenza. Se ci fossero due metodi
diversi in prestazioni per fare la stessa, un compilatore un minimo
furbo userebbe cmq sempre quella piu' veloce.
--
 Ciao, Luca.
 Reply to 
luca....@tiscalinet.it

e me lo tengo) dice che la soluzione (2) può essere più veloce.
Aspetta che devo pulire il monitor :))
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
-----------------------------------------------------
"There is nothing better for understanding a kangaroo
 than seeing it jump." [D.Grune, C.J.H. Jacobs]
Newsgroup: it.comp.lang.c
Titolo: LIBRO

Vorrei avere un consiglio sull'acquisto di un libro. Mi conviene prendere il
libro di Kernigham e Ritchie o prendere un libro pių nuovo come C Corso
completo di programmazione??? Voi cosa mi consigliate??
GRAZIE

Per cortesia ! non postare piu' volte lo stesso messaggio !
--
Andrea Laforgia (ICQ 87230455)
http://www.geocities.com/AndreaLaforgia
"ci sono tre tipi di persone nel mondo : quelli che
 sono bravi in matematica e quelli che non lo sono."


The majority of the stupid is invincible and guaranteed for all time.
The terror of their tyranny, however, is alleviated by their lack of
consistency.
                -- Albert Einstein

corregibili (tipo il modo di dichiarare gli argomenti delle funzioni),
Forse ti riferisci alla I edizione.
La seconda edizione e' pressoche' aderente allo standard.



I 'guru' di questo ng mi hanno consigliato "Linguaggio C" di K&R edito da
jackson Libri ed ora trovi la seconda edizione con le modifiche portate con
ANSI C....io neofita di C, ma con esperienza in Pascal, mi sto trovando
benissimo. Te lo consoglio ;))))
ciao
¤¤¤¤¤¤¤
Darth
¤¤¤¤¤¤¤

 La seconda edizione e' pressoche' aderente allo standard.
scusa Andrea,
ma il K&R a che "livello" arriva ? 
cioe' adesso sto leggendo "C didattica e programmazione" di Kelley-Pohl e 
mi sembra ben fatto .... liste, bit, stack, alberi binari ecc... poi
ho preso quelli di Stevens sui Socket e sull'IPC
volevo prendere anche il K&R, ma ho paura che non aggiunga niente di
particolare, o secondo te conviene sempre tenerlo come "riferimento" ??
grazie ...
ciao


particolare, o secondo te conviene sempre tenerlo come "riferimento" ??
Il K&R II edizione si limita al linguaggio, ed e' giusto che sia
cosi'.  Ormai, se si vogliono strutture dati avanzate, si utilizza il
C++. E' comunque da tenere come testo di riferimento.


 C++. E' comunque da tenere come testo di riferimento.
Non mi sembra che in c++ si possano realizzare strutture dati di
complessita' proibitive per il C,se mai il C++ ne forinsce molte gia'
implementate nella libreria standard e ne facilita la manipolazione.
--
Ivan Molella
__LINUX__ the choice of the __GNU__ generation
icq# 97960484

Dove posso reperirlo in internet il libro di K&R?
Grazie.
Antonio barbone <bar...@raffaello.home> wrote in message
slrn93s9qm...@barbone.raffaello.home...


implementate nella libreria standard e ne facilita la manipolazione.
E' esattamente quello che ho detto.


 
http://www.sopratuttolibri.com
-- 
Simone Martelli
---------------------------
http://www.centerweb.it
http://www.freebooks.it
http://debian.centerweb.it
---------------------------
Newsgroup: it.comp.lang.c
Titolo: Puntatori ad interi

Salve a tutti , uso WinMe e gcc.
Ho letto il K&R , ho tentato di fare un prog
che , dato un vettore di interi usando o puntatore
ad interi , usando l'operatore * , mi scriva , tramite
un ciclo while e scanf , mi memorizzi nell'array  tramite
il puntatore passato dalla funzione:
int array[10]; o fatto anche int *array[10];
void scriviarray (&array[]);
void(scriviarray(* a1[]){
int i=0;int i1=-1;
while(i != -1){
printf("Immetti la cifra");scanf("%d",&i);
i1+=1;
*a1[i1]=i}}
Mi sapete dire se l'utilizzo di un puntatore 
in questo modo e giusto?
Nel K&R e scritto a pag.120 che , se si vuole
cambiare il valore di due int tramite
una funzione(&a1,&a2);si usa &, e si accede
direttamente alle variabili.giusto? per un vettore
como si fŕ?
Grazie a tutti
Ciao

 per un vettore como si fà?
a1[i1] = i;
Grazie a tutti Ciao
ciao
Matic

Newsgroup: it.comp.lang.c
Titolo: Scanf che non attende

Ciao a tutti!
Sono alle prime armi con la programmazione. 
Per uscire da un programma, chiedo all'utente:
printf("Fatto? (S/N)\n");
     scanf("%c", &e_variable);
     if(e_variable == 'S')
                      exit;
     else
     goto ciclo;
In esecuzione, la printf viene eseguita correttamente, ma il programma non
attende che io inserisca un valore da acquisire poi con la scanf.
Va, anzi, direttamente al goto e ripete il ciclo.
Ho dichiarato 
char e_variable;
come variabile globale.
Poco prima c'è un'altra scanf, e lì il programma attende l'utente,
inserisco i valori e tutto è ok. Perché qui no?
Infine, tutti sconsigliano l'uso di goto. Ma come posso fare per
ricominciare daccapo il programma in questo caso, cioè fare la stessa cosa
che fa il goto?
Grazie a chiunque potrà aiutarmi!
Rocky3
-- 
"Il sapere e la ragione parlano, l'ignoranza ed il torto urlano".
Arturo Graf / Indro Montanelli / Anonimo

 Poco prima c'č un'altra scanf[...]
Come volevasi dimostrare. Le scanf() vanno intervallate da "cicli di
pulizia" del buffer.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Sì, dovresti evitare il goto. Per far ciò esistono i cicli (for,
while, do..while).

 risolvere il problema in un thread più sotto.
Vero, ho inserito dopo una getchar() e ora è ok!
Grazie!


 while, do..while).
Ho inserito praticamente tutto il programma in un while, cosě sembra
funzionare allo stesso modo!
Grazie


Vero, ho inserito dopo una getchar() e ora è ok!
Non basta un solo getchar() purtroppo. Devi fare un ciclo finquando
non incontri un '\n'. 

 non incontri un '\n'.
Avevo provato! Ma col ciclo il programma non funzionava :(.


Avevo provato! Ma col ciclo il programma non funzionava :(.
Non è possibile.
Newsgroup: it.comp.lang.c
Titolo: Problema con variabili di tipo Double

Barney (
tu...@yahoo.com
) wrote:
[ snip ]
: Devo leggere un file di testo dove ogni riga contiene una stringa di 30 =
: caratteri e 4 valori Double, usando il selettore "%f", il risultato =
: della lettura =E8 irrimediabilmente un numero casuale!!!! Lasciando =
: invece il codice intatto e cambiando solo i dati da double a float, =
: tutto funziona alla perfezione. Perch=E8?
Perche' per i double la scanf() vuole "%lf".
Ciao ciao
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

 molto, ma penso che ce ne siano molti migliori!!!
Non inviare i file HTML con i posting !!
Dovresti includere il codice per permettere una risposta piu' dettagliata.
Penso che il problema sia che, se usi scanf per la lettura, devi usare
%lf per i double e %f per i float.
Ciao Paolo
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/
       Search, Read, Discuss, or Start Your Own

Newsgroup: it.comp.lang.c
Titolo: carattere fantasma

Ho scritto il seguente programma ma mi legge sempre un carattere in più 
(una y con due puntini sopra). non riesco a capire dove sia il problema!!
Il codice mi sembra semplice e mi succede con tutti i file di prova!!!!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)	
{
   FILE *leggoinput;
	leggoinput = fopen("prova.txt", "rt"));
   while (!feof(leggoinput))   
	{
      	printf("%c",fgetc(leggoinput)); 
   	}
   if(errore!=1) fclose(leggoinput);
   return(0);	
} 
GRAZIE
<<SAX>>

Il codice mi sembra semplice e mi succede con tutti i file di prova!!!!
Stai leggendo un EOF, o meglio gli 8 (o + :P) bit meno significativi
che corrispondono al valore intero di EOF. Prova a fare un controllo
sul ragguingimento o meno di EOF.
-- 
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."


I'm not prejudiced, I hate everyone equally.
Newsgroup: it.comp.lang.c
Titolo: glib per windows

so che i due argomenti nel topic non concordano molto perň... ve lo chiedo
lo stesso: conoscete un qualsiasi sito che metta a disposizione tali
librerie per windows?
ho cercato parecchio su google e vari portali specialistici ma l'unica cosa
"interessante" che ho trovato č stato questo:
http://www.ziobudda.net/pipermail/php-it/2001-March/013049.html
ma non mi "appaga" completamente
help!

 - anguy :

Le glib di Gnome ?
gtk.org
 dovrebbe essere un buon inizio.
Ciao,
-- 
oOO()             |Nicholas Wieland|
/ _/              |nicholas_wieland|
|/ [ Step on the ]|    @
yahoo.it
   |
\_)[  right foot ]|________________|

 
gtk.org
 dovrebbe essere un buon inizio.
eh, lo penso anch'io ma... non mi apre il sito! non trova il server!
lo fa anche a te o è solo un mio problema?
--
anguilla

 lo fa anche a te o è solo un mio problema?
Tuo :)


 Tuo :)
pazzesco!!!|
non mi vuole! gli sto sulle palle!
no beh, un motivo ci sarà...

Newsgroup: it.comp.lang.c
Titolo: [SI]-programmatore Visual C/C++

Coding srl dinamica società operante nel settore IT nell’ambito di
rafforzare 
La partnership con una importante multinazionale , ricerca 
programmatore visual C/C++ 
Per una collaborazione a tempo determinato.
Data Pubblicazione: 21 Gennaio 2003
CODICE : Annuncio 21-gen PROGRAMMATORE VISUAL C/C++
Richiesta esperienza e buona attitudine al lavoro in team
Sede: provincia di Siena
Inizio attività: immediata
Durata progetto: 3/6 mesi rinnovabili
Si prega di inserire nel cv il dettaglio delle proprie esperienze
lavorative (date di riferimento, competenze, responsabilità) 
Inviare cv a : 
in...@codingweb.it
Autorizzare il trattamento dei dati personali in conformità alla L. 675/96.
-- 
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: Un manuale di C on line?

Scusante l'intromissione.
Vorrei sapere se esiste on line un manuale di C per neofiti come il
sottoscritto.
Grazie.
A.



FAQ n. 18.9
----
D:	Ci sono dei tutorial sul C in rete ?
R:	Ce ne sono diversi :
 
http://members.xoom.com/tomtorfs/cintro.html
 
ftp://svr-ftp.eng.cam.ac.uk/misc/sawtell_C.shar
 
  	oppure
 
ftp://garbo.uwasa.fi/pc/c-lang/c-lesson.zip
http://www-h.eng.cam.ac.uk/help/tpl/languages/C/teaching_C/teaching_C.html
 
 
http://www.swcp.com/~dodrill
 
ftp://ftp.netcom.com/pub/rowe/tutorde.zip
 
http://www.strath.ac.uk/CC/Courses/CCourse/CCourse.html
 
http://www-isis.ecs.soton.ac.uk/computing/c/Welcome.html
 
http://www.eskimo.com/~scs/cclass/cclass.html
 
http://www.lysator.liu.se/c/index.html
 
http://www.cyberdiem.com/vin/learn.html

 A.
ciao
 prova 
www.aspide.it
 segui il link per il C
Enrico

Enrico
No, per cortesia, non lo fare.
Finiamola di raccomandare Tricky C come un manuale sul C.

Allora potresti consigliarmi qualcosa di più consono?

Allora potresti consigliarmi qualcosa di più consono?
In italiano non ne conosco.
Nel messaggio precedente ti ho scritto quelli disponibili in inglese
secondo le FAQ.



Dove si trova la FAQ ?
Grazie.
Joyce
ICQ 10607234
Per una pera, una pera cazzo...
Per affrontare questa lunga giornata dura !

>Dove si trova la FAQ ?
La FAQ e' in via di ultimazione, anche se per adesso i lavori sono
fermi.
Mancano ancora 4 o 5 sezioni.
Chi si occupava di alcune di queste sezioni, come Marco Sarti e Aldo
Trianti, e' letteralmente scomparso...
Io ho tradotto 10 sezioni su 20 e mi aspetto che il resto lo facciano
gli altri...

 A.
Non è proprio un manuale ma è molto carino, cercalo come :
 ctutorde.zip (in altavista).
________

Newsgroup: it.comp.lang.c
Titolo: bit shift

Ciao a tutti
ho un problema con il calcolo di un intero da due char. Supponiamo che
l'utente da tastiera inserisce due caratteri che salvo in due variabili char
a,b. Quello che devo fare e' sommare due bit meno significativi di a
shiftati di 8, con tutto b. Supponendo che una variabile int sia di 4
byte,dopo aver assegnato a e b rispettivamente a int i_a,i_b ho pensato di
shiftare i_a di 30 a sinistra e poi di 20 a sinistra e poi sommarlo a i_b
esempio:
a = 11001101
b = 01111011
(i_a<<8) = 00000000 00000000 11001101 00000000
(i_b)       = 00000000 00000000 00000000 01111011
io devo sommare:
00000000 00000000 00000001 00000000
00000000 00000000 00000000 01111011
Il problema e' che funziona solo se shifto prima di 29 e pi di 21. Temo che
c'entri il bit di segno.
Qualcuno ha qualche idea?
Il codice e' qualcosa di simile al seguente:
       i_a = a;
       i_a = i_a<<29;
       i_b = b;
       i_b = i_b>>21;
       res = i_a + i_b
Grazie

Alessandro Toso wrote:

Ciao,
 secondo me ti conviene fare un AND con 3 (00000011) di a (o di i_a) poi fai
lo shift di 8 posizioni a sinistra (su i_a) e sommi.
i_a = a;
i_a &= 3;
i_a <<= 8;
i_b = b;
res = i_a + i_b
Luca

 Qualcuno ha qualche idea?
Usa delle variabili unsigned.
unsigned char a, b;
unsigned int i_a, i_b;
Ciao,
Ema
Newsgroup: it.comp.lang.c
Titolo: Comportamento anomalo

Ciao a tutti, e' la prima volta che scrivo qui. Sto scrivendo un
programmino in C ed ho un problema con una funzione.
=============================================
La funzione implementa il seguente algoritmo:
Le stringhe string1 e string2 sono riempite a sinistra ed a destra
da uno spazio.
Poi le stringhe si dividono nelle triplette di caratteri (trigrammi).
Quindi la somiglianza è calcolata come:
	s = 2*m/(a + b).
m è il numero di trigrammi in comune
a è il numero di trigrammi nella string1
b è il numero di trigrammi nella string2
Esempi: La somiglianza di ALEXANDRE e di ALEKSANDER è
	2*3 / (9+10) = 0.32(trigrammi in comune: _AL, ALE, AND).
=============================================
L'implementazione nel caso di n-grammi e parole di uguali lunghezze
e' questa:
float n_grammi(int enne, char *parola1, char *parola2, int length){
     char t1[enne][length];
     char t2[enne][length];
     char p1[MAX+2]="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
     char p2[MAX+2]="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
     int i,j,uguali=0,parz=0,num_ngrms;
     p1[0]='x';
     p2[0]='x';
     for (i=1;i<=length;i++){
         p1[i]=parola1[i-1];
         p2[i]=parola2[i-1];
     }
     p1[length+1]='x';
     p2[length+1]='x';
     num_ngrms=length-enne+3;
     for (i=0;i<=(num_ngrms-1);i++){
                for (j=0;j<=(enne-1);j++){
                 t1[i][j]=p1[i+j];
                 t2[i][j]=p2[i+j];
             }
     }
     for (i=0;i<=(num_ngrms-1);i++){
         for (j=0;j<=(enne-1);j++)
             if (t1[i][j]==t2[i][j]) parz++;
         if (parz==(enne)) uguali++;
         parz=0;
     }
     if (enne==1) return (float)((float)(uguali-2)/(float)length);
     return (float)((float)uguali/(float)num_ngrms);
}
La funzione funziona perfettamente pero' con parole di lunghezza >=8 si blocca
e mi chiude il programma.
Forse e' un problema di memoria... boh!
Qualche suggerimento?
Grazie.

Aggiungo che la funzione si blocca all'interno del primo ciclo for
dopo averlo eseguito 4/5 volte.

 dopo averlo eseguito 4/5 volte.
Rettifica: il secondo ciclo for, questo:
for (i=0;i<=(num_ngrms-1);i++)
Scusate.

Risolto, avevo fatto un po' di pasticci con gli indici delle matrici.
Scusate nuovamente.
Se c'e' la gara per il post piu' inutile mi iscrivo :-)
Questo e' il codice corretto se vi interessa:
float n_grammi(int enne, char *parola1, char *parola2, int length){
     char t1[enne][length-enne+3];
     char t2[enne][length-enne+3];
     char p1[MAX+2]="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
     char p2[MAX+2]="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
     int i,j,uguali=0,parz=0,num_ngrms;
     p1[0]='x';
     p2[0]='x';
     for (i=1;i<=length;i++){
         p1[i]=parola1[i-1];
         p2[i]=parola2[i-1];
     }
     p1[length+1]='x';
     p2[length+1]='x';
     num_ngrms=length-enne+3;
     for (i=0;i<=(num_ngrms-1);i++){
             for (j=0;j<=(enne-1);j++){
                 t1[j][i]=p1[i+j];
                 t2[j][i]=p2[i+j];
             }
     }
     for (i=0;i<=(num_ngrms-1);i++){
         for (j=0;j<=(enne-1);j++)
             if (t1[j][i]==t2[j][i]) parz++;

Newsgroup: it.comp.lang.c
Titolo: ciclo di lettura da un socket

salve!
avrei una domanda:
ho scriutto un programmino che crea un socket unix (uso DJGPP sotto
winxp) e resta in attesa. Per l'esattezza mi servirebbe per leggere i
dati buttati fuori da un IDS.
Il ciclo però carica la CPU al 100% per cui mi chiedevo dove sta
l'errore.
Vi posto il codice, dfinizioni delle strutture a parte.
Grazie x ogni suggerimento!
Matteo
---------------------------------------------------------------------------------------------------------------
int ritardo(int r, int sd) {
  fd_set sk;
  struct timeval tm;
  int sv;
  char s[50];
  tm.tv_sec  = r;
  tm.tv_usec = 0;
  FD_ZERO(&sk);             // ripulisce la struttura dati
  FD_SET(sd,&sk);           // definisco il socket da analizzare
  sv=select(sd+1,&sk,NULL,NULL,&tm);
  if (sv<0)  // c'è stato un errore sul descrittore
    printf("Errore nella select(...)");
  return sv;
}
int main()
{
   int sock, length;
   struct sockaddr_un snortsock;
   struct sockaddr_un bogus;
   socklen_t len = sizeof (struct sockaddr_un);
   Alertpkt *alert;
   int on;
   /* Crea il socket unix dal quale leggere */
   sock = socket(AF_UNIX, SOCK_DGRAM, 0);
   if (sock < 0) {
      perror("opening datagram socket");
      exit(1);
   }
   // rendo il socket NON bloccante 
   on=1; 
   ioctl(sock, FIONBIO, &on);  
   bzero (&snortsock, sizeof (snortsock));
   snortsock.sun_family = AF_UNIX;
   strcpy(snortsock.sun_path, UNSOCK_FILE);
   if (bind(sock, (struct sockaddr *)&snortsock, sizeof(snortsock))) {
      perror("binding name to datagram socket");
      exit(1);
   }
 
   printf("socket -->%s\n", UNSOCK_FILE);
   printf("Ciclo di attesa\n");
   while (recvfrom (sock, (void *) &alert, sizeof (alert), 0, (struct
sockaddr *) &bogus, &len) > 0) {
     ritardo(10,sock);
   }
   printf("Fine ciclo di attesa\n");
   close(sock);
   unlink(UNSOCK_FILE);
  return 0;
}
---------------------------------------------------------------------------------------------------------------

 ha scritto nel messaggio
news:2uthivs8ibub83536...@4ax.com...
ora non capendoci molto di soket per ora, ti posso solo suggerire di
inserire dei wait o pause l'istruzione dopo dove testi se ci sono dati da
leggere nel soket.
posso aver detto anche una cavolata, e cmq se usi delle funzioni bloccanti
non potresti andare cmq in pausa, perche' rimarresti in attesa di ricevere
risposta dal soket.
ciao

 sockaddr *) &bogus, &len) > 0) {
In caso di socket non bloccante la recvfrom ritorna sempre -1, il ciclo 
viene eseguito di continuo e occupa la CPU al 100%.
Devi fare:
select(/*...*/); /* blocca finchè non sono disponibili i dati */
recvfrom(/*...*/);
Il ciclo è inutile.
-- 
Lorenzo

 viene eseguito di continuo e occupa la CPU al 100%.
  Scusa ma se restituisce -1 la condizione ( -1 > 0 ) sarebbe falsa quindi non
dovrebbe entrare per niente nel ciclo!
O no?
Ciao
--------------------------------
Inviato via 
http://usenet.libero.it
Newsgroup: it.comp.lang.c
Titolo: grazie a tutti, ma...non è finita

Ragazzi ringrazio tutti coloro che mi hanno dato
consigli e mi dispiace che ci sia stato tutta quella caciara per causa
mia...
Una parte dei warning li ho risolti grazie a voi, ora ne rimangono altri
e sono quelli ottenuti quando chiamo la funzione ora vi posto
quello che ottengo cosě vediamo se mi potete dare una mano
La dichiarazione della funzione č:
void vertical_mirror(unsigned short int(*grey)[8][8],unsigned short
int(*red)[8][8],unsigned short int(*green)[8][8],unsigned short
int(*blue)[8][8],int colore,int hsize,int vsize)
La dichiarazione degli argomenti č:
unsigned short int
(*grey)[8][8],*vettore,(*red)[8][8],(*green)[8][8],(*blue)[8][8];
L'allocazione č:
if(tcolors==1)grey=malloc(sizeof (unsigned short int )*thsize*tvsize*3);
	else{red=malloc(sizeof (unsigned short int )*thsize*tvsize*3);
	green=malloc(sizeof (unsigned short int )*thsize*tvsize*3);
	blue=malloc(sizeof (unsigned short int )*thsize*tvsize*3);}
La chiamata della funzione č:
vertical_mirror((*grey),(*red),(*green),(*blue),tcolors,thsize,tvsize);
La domanda dove sbaglio, ossia perchč mi da questo warning 
"assignment of pointer to array 8,8 of unsigned short to pointer to
array 8 of onsigned short".
Grazie di nuovo.   Flinstone
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 vertical_mirror((*grey),(*red),(*green),(*blue),tcolors,thsize,tvsize);
La chiamata della funzione deve essere:
vertical_mirror(grey, red, green, blue, tcolors, thsize, tvsize);

Newsgroup: it.comp.lang.c
Titolo: Puntatori multipli

Salve atutti..mi sono imbattuto in un problema di comprensione riguardo i
soliti puntatori...
Esempio di codice:
-------------------------
#include <dirent.h>
       main(){
           struct dirent **namelist;
           int n;
           n = scandir(".", &namelist, 0, alphasort);
           if (n < 0)
               perror("scandir");
           else
               while(n--) printf("%s\n", namelist[n]->d_name);
       }
----------------EOF------------
Altro esempio di codice:
---------------------------------
#include <stdio.h>
int main(int argc, char **argv)
{
    /* code */
  return 0;
}
-----------EOF-----------------
Nel secondo codice molto comune **argv e' usato come *argv[] , e le
modalita' di accesso ad esso sono identiche...allora e' la stessa cosa?
Nel primo codice pero' se utilizzo *namelist[] al posto di **namelist ho
errori...
1) Mi potreste spiegare per favore come interpretare questo tipo di
puntatori?
2) Ho provato ad imbattermi in ***pointer .... comesi definiscono? A che
puo' servire? Come si accede?
Spero di non aver chiesto troppo, Grazie anticipatamente
Andrea


I'm not prejudiced, I hate everyone equally.

 punt[0][0][0];
Tutto questo se il triplo puntatore va a un array a tre dimensioni, il che
non è detto; se hai int (o quello che è) arr[5][5][5][5][5][5] con quante
dimensioni vuoi e gli indici che vuoi, arr è sempre un int *, non un
int******. Ciao
--
Paolo Giarrusso
Per rispondere togliere solo "TOGLIMI" dall'indirizzo, non _spam.

 Per rispondere togliere solo "TOGLIMI" dall'indirizzo, non _spam.
ciao ....


Newsgroup: it.comp.lang.c
Titolo: ma esiste?

esiste una funzione C che indica il nome della funzione chiamante nella 
funzione chiamata? 

 funzione chiamata?
news:mVdXf.58661$
PR2.9...@twister2.libero.it
news:DVdXf.59046$
A83.1...@twister1.libero.it
ehi, quale altro ti manca da spammare?
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 funzione chiamata?
nelle librerie standard sicuramente no perché non sempre è possibile fare
quello che chiedi; il massimo che puoi fare è stack rewinding e ottenere
l'indirizzo a cui è arrivata l'esecuzione della funzione chiamante; se
vuoi fare quest'ultima cosa studiati come viene solitamente usato sui
processori x86 il registro (e)bp.

Newsgroup: it.comp.lang.c
Titolo: un byte da quanti bit?

Un aiuto dai mediamente esperti...
Mi viene detto che il seguente sorgentino Borland C++
----------------------------------------------
#define RDFIFO 0x300
[...]
printf("\nData = %x\n",inport(RDFIFO));
[...]
----------------------------------------------
Legge dalla porta specificata 16 bit, con cio'
sconvolgendo le mie gia' scarse cognizioni sulla
materia. Pensavo infatti che da una porta si potessero
leggere gli otto bit costituenti il byte.
Qualcuno mi puo' confermare che la word (2 bytes) in realta'
e' una lettura di 8 bit dalla porta 300 e degli altri 8 bit
provengono implicitamente dalla contigua 301?
Un grazie a chi dipanera' i miei dubbi
-- 
                     _ _
                    (O O)
  +-----------oOO----(_)--------------------------+
  |                                               |
  |         Mail: 
claudio...@texnet.it
        |
  |    Home page: 
http://www.texnet.it/cfabbro
    |
  |                                               |
  |    La casa dell'aforisma e del petteguless    |
  |                                               |
  +-------------------------oOO-------------------+
                   |__|__|
                    || ||
                   ooO Ooo

provengono implicitamente dalla contigua 301?
Il tuo sospetto e' corretto. Per leggere i byte usare "inportb".
La tecnica della lettura-scrittura a 8 + 8 bit e' utilissima
quando si lavora con i dispositivi "indexed", cioe' che
hanno alla porta 0x3E0 l'indice di un registro il cui valore
viene letto-scritto alla porta 0x3E1.
Questo consente di usare due porte di IO per centinaia di registri
di dispositivo diversi. Ad esempio i registri estesi di certi
controller video o del PCMCIA controller 82365 funzionano cosi'.
Inoltre nle caso della lettura una sola istruzione di macchina
legge tutto.
Alcuni dispositivi invece rispondono solo ad accessi a  8
o a 16 bit, e devono/possono concordare con il bus ISA ed il
programmatore questa evenienza. Mi viene in mente la lettura
del MAC address dalla SA-PROM del controller NE2000, il quale
dice al 12-esimo IN con un carattere 'b' o 'w' quale tipo di
accesso preferisce. Spero che il tuo hardware non sia cosi'
schizzignoso.

 provengono implicitamente dalla contigua 301?
E' esattamente cosě.
EMG
PS. E' la prima volta che scrivo su questo newsgroup. Se qualcuno mi
conferma l'avvenuta ricezione...
Newsgroup: it.comp.lang.c
Titolo: puntatori e argomenti di funzioni

Ciao,
la situazione è questa:
char **strings;
strings=MALLOC(sizeof(*char)*10); //dovrei avere un vettore di 10 stringhe
for (i=0;i<10;i++)
    readString(strings+i) ;
void readString (char ** result) }{
    *result=MALLOC(5); //dovrei avere una stringa di lunghezza 5
    *result[0]='c';
    *result[1]='i';
    *result[2]='a';
    *result[3]='o';
    *result[4]='\0';
}
Invece quando sono dentro readString il debugger mi dice:
 *result[1] CXX0030: Error: expression cannot be evaluated
e ovviamente quando provo a scrivere il valore *result[1] mi esce una bella
eccezione.
Cosa sto sbagliando?
Grazie
ciao
-- 
A.S. Tronzo (544503)  - VII.33
Stagione 23: 4° in VII.33
elimina unsampdoriano per rispondere via email

 ciao
Niubbata, ci volevano le parentesi, ecco perché non andava.
     (*result)[0]='c';
     (*result)[1]='i';
     (*result)[2]='a';
     (*result)[3]='o';
     (*result)[4]='\0';
bye!


Newsgroup: it.comp.lang.c
Titolo: domanda colorita

Come si colora ciň che stampo su video?
Su internet non ho trovato niente in proposito...

 Come si colora ci? che stampo su video?
In maniera dipendente  da sistema operativo e  librerie in uso. Spostati
sul newsgroup piu` adatto.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Se il  destino di un uomo  e` annegare, anneghera` anche  in un bicchier
d'acqua.
Proverbio yddish

 Su internet non ho trovato niente in proposito...
Devi utilizzare libreria ncurses.h
Per la documentazione vai su google e cerca ncurses
c'è tutto quello che ti serve
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
-----------------------------------------------------------

Grazie mille,
ma io purtroppo programmo su piattaforma windows.
Luca.
Newsgroup: it.comp.lang.c
Titolo: fopen curiosità

partenza=fopen("giij","rb"))
carrica *nella memoria * il file giij e punta partenza all'inizio del
file in memoria (quindi non nel disco rigido)?
 Oppure restituisce solo il  puntatore partenza all'inizio del file
nel disco rigido?
 

Giuseppe,
Giuseppe| | wrote:

   Le funzioni f*() gestiscono l'I/O in modo /buffered/. Questo 
significa che allocano una zona di memoria nella quale possono leggere 
una parte del file. "Possono", perche` i dettagli sono dipendenti 
dall'implementazione. In ogni modo, nella gestione del /buffer/ e` 
assicurata la congruenza con il file d'origine (per esempio, l'ordine 
dei byte).
--
Alla prossima,
Marco

 ha scritto:

Direi  che e`  strettamente  implementation  dipendent. In genere  fopen
alloca un  piccolo buffer  interno per  velocizzare alcune  funzioni (ad
esempio getc  e` solitamente una  macro che opera su  questo buffer). Le
varie funzioni fopen, fread, fwrite,  ecc. sono dei wrapper per chiamate
al sistema operativo che gestisce i file come meglio crede. 
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
It can't rain forever,
but you can die before seeing the sun again.

Newsgroup: it.comp.lang.c
Titolo: Redirezione dell'output

Sto scrivendo una shell per l'università e il prof mi ha chiesto di inserire
una funzione che si occupi della erdirezione dell'output utilizzando la
funzione dup().
Potete darmi una mano?
Se ci sono altri post non mi picchiate ma studiando e lavorando insieme non
ho tempo di mettermi a fare lunghe ricerche
Grazie
Claudio Neri

claudioneri wrote:

it.comp.os.linux.development
E' facile redirigere i descrittori standard:
   int dup2(int oldfd, int newfd);
Ovviamente prima devi aprire il nuovo file descriptor, che puo' essere un
normale file. Stesso discorso per le pipe, solo che il FD lo apri con una
chiamata di sistema pipe().
Se devi per forza usare la dup(), allora prima chiudi il file descriptor che
vuoi sostituire, poi ne apri un nuovo (automaticamente prende il posto
della prima posizione libera, cioe' quella del file che hai appena chiuso).
-- 
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: problema funzioni

Salve a tutti
Volevo chiedere se qualcuno e' a conoscenza di funzioni che, programmando 
sotto linux, facciano quello che in windows fa SetTimeout e SetInterval.
grazie in anticipo a chiunque mi rispondera'
-- 
Bioch 

> sotto linux, facciano quello che in windows fa SetTimeout e SetInterval.
Forse sarebbe il caso di dirci cosa fanno innanzitutto queste 2 funzioni.
-- 
Hi, I'm a .signature virus! Copy me to your .signature file and
help me propagate, thanks!

 ha scritto nel messaggio 
news:e8ih1t$le3$3...@newsreader.mailgate.org...

Newsgroup: it.comp.lang.c
Titolo: funzione void

Ciao a tutti,
il compilatore mi da come errori; che k e f sono undeclared
identifier... non riesco a capire.. le ho dichairate all' interno del
main... grazie mille
#include <stdio.h>
int funz();                          //proto
void swap(int k, int f);         //proto
 int main()
{
	int a = 2;        //dichiaro e inizializzo a come intero, assegno il
valore 2
	int *puntatore;   //dichiaro un puntatore generico a un intero
	puntatore = &a;   //assegno al puntatore il valore di a
	int tmp = 0;
	int k = 5;
	int f = 6;
	printf("il valore di a e:%d\n",a);
	printf("il valore in memoria e:%X\n",puntatore);
	system("pause");
	swap(k,f);//richiamo swap
	funz();   //richiamo funz
}
int funz()           //funzione funz
{
	int b = 3;
	int *puntatoreb = &b;
	printf("Inserisci un valore decimale barbons..\n");
	scanf("%d",puntatoreb);
	printf("il valore esa in memoria e il valore decimale di B sono:%d %X
\n",puntatoreb,b);
	system("pause");
}
void swap(int k, int f) //funzione swap
{
  int tmp;
  tmp=k;
  k=f;
  k=tmp;
}

}
Occhio che questa funzione swap() non "swappa" un bel niente. I
parametri k e f devono essere passati per riferimento, il che in C
significa che bisogna passare dei puntatori alle variabili per le
quali invertire il valore:
void swap(int *pK, int *pF) {
     int tmp = *pK;
     *pK = *pF;
     *pF = tmp;
}

 \n",puntatoreb,b);
Usa %p per stampare l'indirizzo di un puntatore, e se dichiari int
funz() devi far ritornare un intero.
system() su windows non è definita in stdlib.h ?!? Intuisco dal
system("pause") :-)
Salut.


il compilatore è visualstudio2005, ok per la funzione int funz()
(vabbe' non mi torna errori il compilatore), e ok per il %p, poi per
quanto riguarda la funzione swap (sono d' accordo con te, avevo 2
esempi diversi uno senza * uno con i *.
l' Errore che ho è solo sulla funzione swap, il compilatore mi dice
che f e k sono undeclared.

 - Show quoted text -
è il compilatore.... ho incollato il codice in devc++ è tutto
funziona...bo..mi spiace xhe' vorrei utilizzare visualstudio, è cosi'
comodo...., non capisco le differenze..
saluti

yqy...@hotmail.com
 ha scritto:

Non ne sono sicuro ma il visual c richiede che le dichiarazioni siano 
all'inizio del blocco prima di qualunque operazione,
prova a spostare le due dichiarazioni, così:
int main()
{
int a = 2;        //dichiaro e inizializzo a come intero, assegno il 
valore 2
int *puntatore;   //dichiaro un puntatore generico a un intero
int k = 5;
int f = 6;
puntatore = &a;   //assegno al puntatore il valore di a
int tmp = 0;
printf("il valore di a e:%d\n",a);
...
...

 all'inizio del blocco prima di qualunque operazione,
Confermo, e' quello il problema.
Saluti,
The Librarian


Confermo anche io, grazie mille!
saluti