mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: compilare un programma con Cygnus ed eseguirlo senza cygwin.dll

Dal soggetto e' chiaro cosa voglio ottenere... qualcuna mi sa dire come fare?
molte grazie.
"Il senno di poi e' una scienza esatta
nello stabilire cosa _non_ si doveva fare"
Murdock Myst
Doc. Linux: 
http://www.pluto.linux.it/ildp
 , 
http://sunsite.unc.edu/LDP
Segnalate la vostra esistenza al Linux Counter: 
http://counter.li.org/


Io non ho ancora avuto modo di provarlo pero' Minimalist per GNUWin32
dovrebbe fare quello che chiedi; non ricordo il sito dal quale l'ho
scaricato pero' sicuramente c'e' un Link sul sito della Cygnus e,
probabilmente, una ricerca di Mingw32.zip dovrebbe bastare per
individuare il sito FTP.
Se non lo trovi dimmelo che vedo cosa posso fare.
Ciao, UDA.
-- 
<><><><><><><><><><><><><><><><><><><><><><><><
UDA'Software
mailto:
uda.so...@iol.it
http://www.GeoCities.com/SiliconValley/Bay/2165

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

come può una funzione modificare  l'indirizzo di un puntatore?
es:
void fun( int *pt)
{
  int i = 8;
pt = &i;
}
int main()
{
int *pt = NULL;
fun(pt);
//ed ora  pt è sempre NULL
return 0;
}
grazie!

 grazie!
inoltre non vorrei sbagliarmi la la memoria allocata per i andebbe a finire
deallocata all'uscita dalla funzione, quindi hai un ptr non valido
ciao

come puň una funzione modificare  l'indirizzo di un puntatore?
void modify_ptr( int **p, int *new_value ) 
{
     *p = new_value ;
}
int main()
{
    int i = 3, j = 5 ;
    int *p = &i ;
    modify_ptr( &p, &j ) ;
}
--
Andrea Laforgia (ICQ 87230455)

 grazie!
1 - La variabile i di fun() è allocata nello stack all'ìnizio della
    esecuzione della funzione e deallocata alla fine.
    Per mantenerla in vita deve essere dichiarata _static_:
2 - per modificare il puntatore dichiarato nella funzione main, occorre
    passare a fun() il suo indirizzo.
    Naturalmente va modificato anche il prototipo della funzione,
    come nel codice che segue.
Spero ti sia utile - gfb
#include <stdio.h>
void fun( int ** pt); /* pt dichiarato come puntatore a puntatore */
int main() {
   int i=15;
   int *pt = &i; /* pt punta alla í'di main() */
   printf("Prima di fun(): i=%3d - puntatore a i%p\n",*pt,pt);
   fun( &pt ); /* Chiama la funzione con l'indirizzo del puntatore 
	          ora pt punta alla 'i' di fun() che vale 8        */
   if (pt != NULL)
      printf("Dopo  fun()...: i=%3d - puntatore a i%p\n",*pt,pt);
   else printf("fun() ha ritornato un valore nullo\n");
   return 0;
   } /* end main() */
void fun( int** pt) {
   static int i;
   i=8;
   *pt=&i; /* assegna al puntatore l'indizzo di i */
}
Newsgroup: it.comp.lang.c
Titolo: Problema con un programma

Buongiorno chiedevo un aiuto, ho un programma che ho compilato sotto win
2000 per mezzo di cygwin. Non mi da errori di sintassi, ma mi da
segmentation fault.
Mi sarebbe utile sapere dove si trova l'errore, visto che anche con il
borland c 5.5 si compila ma a runtime va in seg fault.
Il programma e' il seguente:
----------------------------------------------------------------------------
-------------
#include <stdio.h>
#include <stdlib.h>
#define BUFLEN 20
main()
{
 char buf[BUFLEN];
 FILE *fp;
 system("regedit /E reg.txt HKEY_CLASSES_ROOT\.step\shell\open\command");
 if ((fp = fopen("reg.txt", "r") == NULL))
 {
  printf("File non esistente");
 exit(1);
 }
 fgets(buf, BUFLEN, fp);
 printf("Val %s", buf);
 fclose(fp);
 return(0);
}
----------------------------------------------------------------------------
--------------------
Facendo un sommario debug ho visto che si arresta sulla fgets. Se uso una
fscanf il problema e' il medesimo.
Grazie.

 wrote in message
news:98hvhi$dck$1...@pinco.nettuno.it...


Grazie, del suggerimento, ho gia' provato, ma non ha sortito alcun effetto,
ho messo la fgets all'interno di un ciclo while:
----------------------------
while (!feof(fp))
{
    fgets(buf, BUFLEN, fp);
    printf("Val %s", buf);
}
----------------------------
di modo che legga tutto cio' che serve sino alla fine del file, ma ottengo
un core dump. Non capisco xche'.
Se qualcuno riesce a capirlo...
Grazie.

 wrote in message
news:98idig$i22$1...@pinco.nettuno.it...


 if ((fp = fopen("reg.txt", "r") == NULL))
E' sbagliato questo confronto.
Il confronto giusto e' :
if ( ( fp = fopen( "reg.txt", "r" ) ) == NULL )
{
   ...
}
Il segno == ha precedenza maggiore dell'assegnamento.
--
Andrea Laforgia (ICQ 87230455)
"ci sono tre tipi di persone nel mondo : quelli che
 sono bravi in matematica e quelli che non lo sono."

Bob Rock
Per cortesia, non top-postare e non quotare tutto il testo nella
risposta.


Grazie e 1000 ora funziona.
Avevo sbagliato a digitare la parentesi...

Newsgroup: it.comp.lang.c
Titolo: Lanciare programma windows

da un programma C, compilato con djgpp/mingw
come e possibile lanciare un programma che si trova
in c:\prog\...\...\nomeprog.exe.
Vi ringrazio
Saluti


Prova a vedere se sono implementate le chiamate
non standard exec (execl, execv, ...), tenendo
presente che una chiamata ad una di queste funzioni
rimpiazzano il processo che che le chiama.
Altrimenti la chiamata system().
HTH
C:\>iao Angelo


ok, ti ringrazio.
Ciao
Newsgroup: it.comp.lang.c
Titolo: espressioni equivalenti

Ciao a tutti,
dichiaro
int a[3][5];
potreste spiegarmi, perfavore, perche' le sottostanti espressioni sono
equivalenti tra di loro:
*(a[i] + j)
*((*(a + i)) + j)
*(&a[0][0] + 5*i + j)
Grazie mille ^_^
  Leonardo

 *(&a[0][0] + 5*i + j)
Quest'ultima espressione rivela una caratteristica sotto certi aspetti 
bizzarra del C, il quale allinea uno dietro l'altro tutti gli elementi 
di un array a piu` dimensioni e "dimentica" la struttura matriciale 
soggiacente, che spiega la modalita` di passaggio degli array a piu` 
dimensioni come parametri delle funzioni e che comporta la strana 
equivalenza
	a[i][j] == a[j][i]
con buona pace dei controlli di range.
Per gli array multidimensionali, dunque, l'espressione (1) assume la 
piu` generale forma:
	*(*(...*(array+offset_1)+offset_2)+...)+offset_N) <->
	array[offset_1][offset_2]...[offset_N]
che, note le dimensioni dei vari vettori, consente livelli di 
contorsione espressiva pregevoli e quanto mai deprecabili che lascio 
alla tua fantasia.
-- 
Baci,
Mony


nel senso che ai fini dell'allocazione in memoria 3*5 == 5*3  ?
(cioe' il numero di elementi rimane costante invertendo righe e colonne)
o_0 ehm... qui avrei bisogno di un altro indizio  ;-)
Grazie
   Leonardo

 o_0 ehm... qui avrei bisogno di un altro indizio  ;-)
Mi sono espresso in modo pessimo ed anche se avevo preannunciato che 
sarebbe stato arduo, mi cospargo il capo di cenere. Comunque, nel 
contesto dell'algebra dei puntatori, quanto tu affermi e` vero:
<code>
	/* file: matrix.c */
	#include <stdio.h>
	int matrix[3][5]={
           {11,12,13,14,15},
           {21,22,23,24,25},
           {31,32,33,34,35}
	};
	int
	main(void)
	{
           printf("%d\n",*(&matrix[0][0]+6));
           return 0;
	}
</code>
	$ cc -o matrix matrix.c
	$ ./matrix
	22
Cio` che non e` ovviamente vero e` quel che in virtu` della mia evidente 
incapacita` di espressione si rischia di capire dal mio messaggio 
precedente, e che cioe` sussista l'identita` tra gli elementi di una 
matrice a cavallo della sua diagonale:
	a[i][j]!=a[j][i]
Spero di non averti ulteriormente confuso le idee. ;)
-- 
Baci,
Mony

 e cioe` che in ambito "puntatoriale" 
Brrr... "ambito puntatoriale"... brrr....
Baci,
Andrea
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

*((*(a + i)) + j)
l'altra non me la so spiegare tranne che faccio il seguente discorso:
se a si considera oltre che un vettore bidimensionale anche un vettore
di una sola dimensione allora forse si potrebbe scrivere
a[0]=a[0][0]  a[1]=a[0][1]  a[2]=a[0][2]   a[3]=a[0][3]   a[4]=a[0][4]
a[5]=a[1][0]  a[6]=a[1][1]  a[7]=a[1][2]   a[8]=a[1][3]   a[9]=a[1][4]
a[10]=a[2][0]   a[11]=a[2][1]    a[12]=a[2][2]  a[13]=a[2][3]
a[14]=a[2][4] 
a[i][j]=a[5*i+j]=*(a+5*i+j) 
infatti per esempio empiricamnete a[2][1]=a[11]=a[5*2+1]
la formula la puoi provare con tutti gli elementi per vedere che
funziona davvero 



come rappresenteresti a[1][1] ?
grazie

come rappresenteresti a[1][1] ?
a[1][1]=b[6]=(&a[0][0])[6]
ma probabilmente dico ca$$ate :)

On Sun, 17 Mar 2002 10:19:27 GMT, j...@jk.jk (jk) wrote:
Scusate mi pareva che fosse
char a[3][5] (e non  int a[3][5])

Newsgroup: it.comp.lang.c
Titolo: informazioni libri

salve a tutti
scusate vorrei comprare un buon libro di programmazioni sul c e ho gia'
comprato programmare in c dell'apogeo solo che e' un po scarso.
qualcuno mi ha consigliato linguaggio c 2 edizione pero' vedendo il prezzo
27 euro lo vedo quasi uguale a quello che ho dell'apogeo.
che ne dite di questo
, "C traps and pitfalls",

 wrote

E' un libro molto interessante ma NON e' un corso completo. Va affiancato ad
un'altro libro e
approfondisce alcuni concetti che possono essere motivo di confusione.
Il fatto e' che tutto cio' che contiene il libro e' OVVIO per chi abbia un
abbastanza esperienza in C.
Io lessi il sample chapter su amazon ed il table of contents e... mi sono
reso conto che se uno legge il
K&R attentamente non ha bisogno di questo libro. Peccato che sul K&R devi
leggere tra le righe, qua
e' tutto molto esplicito.
In conclusione, nulla di eccezionale, ma un libro che puo' sicuramente
aiutare. (se stai pero' cercando
un libro "corso completo" questo NON e' il libro adatto!)
Tommy

ansimous wrote:

Il K&R. Visto che non e' il primo libro che consulti sul C non dovrebbe 
essere difficile da seguire.
Quello che citi tu e' un testo avanzato sulla programmazione in C di un 
"tale" Koenig: non ti insegna a programmare, ma a schivare gli errori piu' 
subdoli :)  Se non sai gia' il C non penso sia molto utile.
-- 
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."

Io ho utilizzato "C Corso Completo Di Programmazione" edito dalla Apogeo,
autori Deitel & Deitel, e mi sono trovato molto bene.
Saluti,
Sergio

Newsgroup: it.comp.lang.c
Titolo: Programmatore cercasi!

Cerco programmatore per collaborazione, in grado di sviluppare applicativo
su piattaforma Linux per validazione mediante smart-card di utenti
abilitati.
Per informazioni: 
kinfo...@kinformatic.com


wrote:


 cod
Un po' pochino lo spazio, non credi ;)
Bye
Newsgroup: it.comp.lang.c
Titolo: talk o chat

raga... un aiuto!!!!
ho necessità di fare un programmino in C (non C++) che permetta a un server
e a un client di "dialogare" tipo chat e che abbia pure la possibilita di
inviare e ricevere file
io non ho conoscenze di C e siccome questo programmino mi serve entro
qualche giorno, mi sembra improponibile di studiarmi il C in così poco
tempo...
sapete dove posso trovare qualche sorgente che mi possa essere d'aiuto?
so che la mia è una richiesta abbastanza scorretta, e di questo mi scuso in
anticipo ma... ne ho bisogno veramente!
ringrazio tutti quanti avranno la cortesia di darmi una mano (anzi, in
questo caso, tutto il braccio)
:-)


Non riesci a fare l'appello di Settembre?
Luca

 Non riesci a fare l'appello di Settembre?
Ma ROTFL ;-)
-- 
Emanuele Balla  aka Skull -  Public Key #661E5CBF on 
www.keyserver.com
+----------------------------------------------------------------------+
"And 1.1.81 is officially BugFree(tm), so if you receive any bug-reports
on it, you know they are just evil lies." (By Linus Torvalds)

 raga... un aiuto!!!!
Ma senza problemi....
http://www.bitchx.org/download.php
Il tuo prof. di sicuro non si accorgera' che non l'hai fatto tu. E'
notorio che i professori sono tutti una manica di idioti che rubano
solo lo stipendio...
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c
Titolo: Alias in C per programmazione di micro (pic)

Salve, ho definito una struttuura di bit_field.
Vorrei evitare di scrivere ogni volta ..
"nomestruttura.dato"
usando un alias.
Ho provato facendo:
#define nomecorto nomestruttura.dato
ma mi da errori.
CVome posso fare? grazie


Non ha senso. Il preprocessore semplicemente sostituisce il testo - ci
deve essere qualche errore nel codice.

 wrote in news:c35cf360-8eb7-4de1-
8f06-aa6...@g38g2000yqn.googlegroups.com
:

Dipende cosa hai fatto.
Se hai fatto:
struct pippo{
    	char a    	:1;
    	char b    	:1;
};
#define nomercorto1    	pippo.a
#define nomercorto2    	pippo.b
Non funziona perche' pippo non e' il nome della variabile, ma quello 
della struct.
Devi fare:
struct {
    	char a    	:1;
    	char b    	:1;
} pippo;
#define nomercorto1    	pippo.a
#define nomercorto2    	pippo.b
cosi funziona perche' hai dichiarato (e istanziato) una variabile di nome 
pippo di tipo struct{...}
Ciao Jack
-- 
http://motoko.dyndns.org
Newsgroup: it.comp.lang.c
Titolo: Costo di una funzione

Ciao, qualcuno mi potrebbe dire qual'è il costo di una funzione che ha uno
pseudocodice tipo questo:
void funzione()
{
        // il for lo faccio tutto, non esco mai per casi particolai
	for ( i=0 ; i<HASHSIZE ; i++ )
	{
		while ( ptr!=NULL )
		{
                    // scorro un lista per trovare una parola in una lista
                    // questo sono sicuro che costi O(n)
		}
	}
}
Il mio dubbio è: siccome O(n) viene fatto sempre per un numero di volte
HASHSIZE allora è come se avessi O(n) + O(n) + O(n) ecc ecc.... per cui se
non ricordo male in questi casi è ancora O(n) il costo?? 
Vi ringrazio per l'aiuto!
Ciao
Giorgio
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Dovrebbe essere O(HASHSIZE) * O(lista)

 Vi ringrazio per l'aiuto!
sě, se HASHSIZE e' una quantita' fissa che non aumenta con l'aumentare di n.

 non ricordo male in questi casi č ancora O(n) il costo?? 
Se non faccio errori, dovrebbe essere O(n^2)


Newsgroup: it.comp.lang.c
Titolo: Mi fate un programmino?

Ciao,
           ovviamento pagando volevo chiedere se qualcuno poteva farmi un
programmino semplice semplice:
si tratta di un residente in memoria (spero l'intuizioni sia giusta) che
mandi un output (ad es. un immagine selezionabile) su video ad una frequenza
anch'essa selezionabile nel mentre si sta operando tranquillamente in una
sessione di Windows.
Mi servirebbe per portare a termine un'esperimento sulla ricezione
subliminale...ho provato a costruirmelo da solo ma non riesco a stabilizzare
la frequenza e ancora peggio non riesco ad andare oltre i 6Hz...
Grazie a chi vorrą aiutarmi!!

 Grazie a chi vorrą aiutarmi!!
de nada
  - Pietro -
Newsgroup: it.comp.lang.c
Titolo: mi serve una mano

/*Devo risolvere il seguente problema. Dati 3 punti A,B,P su un piano 
cartesiano determinare le distanze fra i 3 punti. 
Ricordo che la distanza fra 2 ounti č la radice quadra di (x2-x1)al quadrato
- (y2-y1) al quadrato.
Per determinare se il punto P e all'interno del segmento AB confronto AB
con la somma AP + BP. Se AB = AP + BP il punto P č sul segmento AB.
Io ho fatto il seguente codice allegato, ma non riesco ad andare avanti.
 Adesso dovrei prendere in input 3 punti. Calcolare le distanze usando pDist
e fare il confronto e fare il confronto
mediante una funzione (bool) IsOnTheLine (float *pOp1, float *pOp2, float
*pOp3)
Devo fare questo codice entro giovedě. Se qualcuni mi aiuta lo ringrazio in
anticipo:)
*/
# include <malloc.h>
# include <string.h>
# include <conio.h>
# include <stdio.h>
# include <stdlib.h>
# include <math.h>
void main (void)
{
	char c;
	float pOp1 [2];
	float pOp2 [2];
	float pDist;
	pOp1 [0] = 1.0;
	pOp1 [1] = 1.0;
	pOp2 [0] = 2.0;
	pOp2 [1] = 2.0;
	printf("\n La distanza fra (%10.5f,%10.5f) e (%10.5f,%10.5f) e'",
	pOp1 [0], pOp1 [1], pOp2 [0], pOp2 [0]);
	c = getch();
	pDist = sqrt (pow (pOp2[0]-pOp1[0],2.0) + pow (pOp2[1]-pOp1[1], 2.0));
 
	printf("%5.10f", pDist);
	//printf("\n %15f", pDist);
	c = getch();
}
-- 
Posted from 
squid.spin.it
 [147.123.1.111] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 *pOp3)
A me sembra che tu abbia già trovato la soluzione: con scanf aqquisisci
i tre punti, li passi alla funzione in cui calcoli le tre distanze come
hai già fatto, e con un if fai restituire 1 o 0 usando come controllo AB
== AP + BP.
Attenzione pero', perchè devi essere sicura che alla funzione non
vengano passati tre puntatori generici a float, ma i tre nomi degli
array.

Newsgroup: it.comp.lang.c
Titolo: SOS: improtare una dll :o/

Ciao a tutti siamo Nadia e Marianna.
Abbiamo un piccolo problemino che non riusciamo a risolvere: dobbiamo
importare una dll in java, o meglio dovremmo importare il main di una dll.
Qualcuno di voi ci saprebbe aiutare, o ci saprebbe consiglaire un sito da
consultare?
Grazie anticipatamente a tutti quelli che ci vorranno aiutare!
Ciao :o)
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Grazie anticipatamente a tutti quelli che ci vorranno aiutare!
Usare google non e' tanto difficile...
HTH
C:\>iao Angelo
P.S. il ng per postare domande relative alla programmazione con
     windows e' it.comp.programmare.win32, per la programmazione
     in generale e' it.comp.programmare.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c
Titolo: Funzioni HTTP, qualcuno conosce...

Ciao a tutti!
Dovrei aprire dei file .txt che risiedono nella cartella public di
www.miosito.com
.
Posso utilizzare fopen ("http://....,"r"); oppure devo utilizzare qualche
altro comando?
Grazie a tutti.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Grazie a tutti.
Ti bastava provare per scoprire che la risposta era "no".
Anyway, ti servono librerie che si basano (quasi) obbligatoriamente su 
aspetti non-standard del linguaggio - chiedi sul newsgroup del sistema 
operativo su cui ti vuoi muovere per informazioni a riguardo.
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://www.cs.unibo.it/~mbellett
Linux registered user 299762 @ Linux registered machine 213003

 operativo su cui ti vuoi muovere per informazioni a riguardo.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 


 ha scritto nel messaggio
news:cd62ep$d0u$1...@news.newsland.it...


Thanks.
Ale_s ha scritto:


Newsgroup: it.comp.lang.c
Titolo: Sfondo finestra DOS

...devo importare in un doc delle schermate della finestra DOS di un
programma realizzato da me in C, volevo sapere se è possibile invertire (con
qualche riga in C) lo sfondo (nero --> bianco e i caratteri da bianchi a
neri)
Grazie

 Q: What's the most annoying thing on Usenet?

Newsgroup: it.comp.lang.c
Titolo: preblemi con scanf

Salve.
Ho un quesito da porvi
se io ho un variabile
int x e la uso con scanf("&x")  se il valore immesso e maggiore di MAXINT
scanf me lo segnala da qualche parete o no ?
Grazie
Mirko

se il valore immesso e maggiore di MAXINT scanf me lo segnala da qualche parete o no ?
Non credo proprio ! :)
Anche se penso che dovrebbe convertirlo in negativo... o no ?
Skyscraper
----------------------------------------------------------------
"Sopra il camper la capra campa, sotto il camper la capra crepa"
--
Posted from 
itaca.ulysse.it
 [195.223.254.1]
via Mailgate.ORG Server - 
http://www.mailgate.org


Si te lo dovrebbe segnalare nell'int che ti restituisce, infatti:
int scanf("");
ovvero la scanf restituisce un intero negativo se vi sono dei problemi del
genere.

genere.
NO

Newsgroup: it.comp.lang.c
Titolo: aiuto compilatore

Vorrei sapere da differenza tra compilatore e un interprete.

 wrote in message
news:3AC0B3E4...@tin.it...


 ha scritto nel messaggio
news:3AC0B3E4...@tin.it...

Newsgroup: it.comp.lang.c
Titolo: Novita introdotte dal C99

Quali sono le novità introdotte dal C99???
Tnk

 ha scritto nel messaggio
news:53Web.154827$hE5.5...@news1.tin.it...


Newsgroup: it.comp.lang.c
Titolo: Stringhe in interi

Mi sapreste indicare una libreria che contenga una funzione per la
conversione da stringhe a interi?
So che è banale da implementare, ma volevo qualcosa di già funzionante e
stabile. Grazie

 conversione da stringhe a interi?
atoi/atol stanno in stdlib.
ciao.

 conversione da stringhe a interi?
la funzione atoi() in stdlib.h
e poi ce ne dovrebbe essere un'altra piu' versatile
che mi sfugge in questo momento...
ciao,
e.

 che mi sfugge in questo momento...
strtol afaik.
-- 
[ RiK0                                ]
[ non credo negli schemi non vincenti ]
[ two is an odd prime number          ]

 strtol afaik.
Anche sscanf, volendo.
--
Cingar
-- 
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: accedere al nome dei file per rinominarlo

Ciao a tutti,
scusate la domanda sciocca; non sono esperto, cmq per motivi di studio devo 
mettere mano al linguaggio c per realizzare un programmino che mi rinomini i 
file come segue:
in una directory ho 30 file con numero progressivo come per esempio:
img0001
img0002
img0003
img0004
.......
Questi file devono essere elaborati preservando l'ordine (sono sequenze di 
immagini) ma per essere elaborate devono essere rinominate come segue:
img0001--->img0001a
img0002--->img0001b
img0003--->img0003a
img0004--->img0003b
In pratica divise in coppie di immagini entro cui l'una si distingue 
dall'altra attraverso le lettere a e b
(in teoria mi andrebbe bene anche rinominarle come segue:
img0001--->img0001a
img0002--->img0001b
img0003--->img0002a
img0004--->img0002b)
Mi mettete sulla buona strada? Il funzione rename() purtroppo mi pare che 
non mi dia la possibilita' di accedere ai singoli caratteri del nome file, 
caratteristica che mi servirebbe per dire nel codice:
"preserviamo l'ordine e, partendo dal primo rinominalo, e poi occupati del 
primo +1 ecc ecc"
Anche solo per creare un array ordinato di puntatori ai file nella directory 
che sono migliaia.

 primo +1 ecc ecc"
Costruisci dinamicamente il nome del file:
char src[100];
char dst[100];
int i;
for(i = 1; i < MAX_IMAGES; i++) {
        if (i % 2) {
                /* imgXXXX -> imgXXXXa */
                sprintf(src, "img%04d", i);
                sprintf(dst, "img%04da", i);
        } else {
                /* imgXXXX -> imgXXXXb */
                sprintf(src, "img%04d", i);
                sprintf(dst, "img%04db", i - 1);
        }
        rename(src, dst);
}
Il nome dell'immagine lo costruisci con la sprintf. Se il numero
dell'immagine e` dispari allora semplicemente attacchi una una 'a' in
fondo, altrimenti attacchi una 'b' e metti il numero _precedente_.
Luca
-- 
Home: 
http://kronoz.cjb.net
Porc i' mond che cio' sott i piedi!
V. Catozzo

 variabile in relazione alle esigenze dell'utente quel %04?
Con un asterisco: printf("%0*d",ampiezza,numero);
Non so se sia standard..
-- 
Devaraja (Xdevaraja87^gmail^c0mX)
Linux Registerd User #338167
http://counter.li.org

 Non so se sia standard..
Non vedo il post dell'OP quindi attacco la reply qui...
Puoi costruire dinamicamente anche la stringa di formato della sprintf,
con una cosa di questo tipo:
char fmt[100];
char const *base_name = "img";
int const num_size = 6; /* 6 cifre */
sprintf(fmt, "%s%%0%d", base_name, num_size);
...
sprintf(src, fmt, i);
Luca
-- 
Home: 
http://kronoz.cjb.net
"In linea di principio sarei indifferente al natale, se solo il natale
 ricambiasse la cortesia e mi lasciasse in pace." -- Marco d'Itri
Newsgroup: it.comp.lang.c
Titolo: muovere puntatore

ho un file aperto e il puntatore ad un certo punto, come posso fare a
muoverlo in una posizione da me stabilita?
qualche idea?
grazie
------------------
ApO
------------------

muoverlo in una posizione da me stabilita?
fseek()
La funzione accetta 2 parametri.
Il primo e' lo spostamento espresso in byte (e' di tipo long, il che
limita questa funzione), il secondo indica da dove partire per
conteggiare lo spostamento: puoi farlo spostare a partire dall'inizio
(SEEK_SET) del file, dalla fine (SEEK_END) o dalla posizione corrente
(SEEK_CUR).
Un'alternativa e' usare la coppia di funzioni fgetpos, fsetpos.
-- 
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."

 Un'alternativa e' usare la coppia di funzioni fgetpos, fsetpos.
Quasi-alternativa. Non e`  possibile saltare  alla posizione  voluta con
fsetpos. E` invece possibile salvare la posizione corrente con fgetpos e
ritornarci in seguito con fsetpos. Le funzioni accettano un argomento di
tipo fpos_t  (volutamente opaco) che puo`  non essere (di solito  non lo
e`) uno scalare. Lo standard garantisce  che fpos_t puo` contenere tutte
le  informazioni necessarie  per caratterizzare  in maniera  completa la
posizione corrente del puntatore, ed e` utile  in tutti i casi in cui un
long int non basta.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
"Chi parla in tono cortese, ma continua a prepararsi, potra` andare avanti;
 chi parla in tono bellicoso e avanza rapidamente dovra` ritirarsi" 
Sun Tzu -- L'arte della guerra

 qualche idea?
grazie per le idee, proverò e vi farò sapere!!
--------------------
ApO
--------------------

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

Dovrei implementare un progetto di simulazione in c o java  di questo tipo:
L’officina comprende alcuni operai, simulati da thread indipendenti, e un
set limitato di attrezzi di tipi diversi (pinze, cacciaviti, chiavi
inglesi…); il numero di copie di ogni attrezzo deve essere inferiore al
numero di operai.
All’officina arrivano auto da riparare, ciascuna delle quali richiede una
certa combinazione di strumenti e un certo tempo; la combinazione è
generata a caso tra tutte le possibili (non vuote) e il tempo è un numero
casuale di minuti, fino a un massimo.
Qualcuno puo' darmi qualche sito dove ci sono esempi di algoritmi di
simulazione?
Grazie
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
Ti sei beccato un bel progetto :P
pero' è fattibile, io ti consiglio di non cercare in rete, ma fai una 
bell'analisi del problema e inizia a scrivere il codice

Che linguaggio di programmazione mi consigli?
io direi java...

Newsgroup: it.comp.lang.c
Titolo: BIOSDISK

Non sò se questo è il ng adatto, cmq espongo il problema.
Stavo provando un programmino per la formattazione a basso livello del disco
ed ho avuto un piccolo problema:
stavo facendo girare il programma dal compilatore per tenere tutto un pò più
sotto controllo, la formattazione stava andando bene
quando decido di fermare il programma per aggiungere qualche istruzione in
più. Uso il Borland Turbo C++ 3.0 per dos. Dopo
aver fatto qualche modifica al programma lo faccio ripartire e da quel
momento in poi la funzione _DISK_FORMAT di biosdisk
non ha mai più funzionato sul mio pc! Tutto funziona bene, windows gira
bene, _DISK_READ, _DISK_WRITE, e tutto il resto funziona
bene, ma se provo _DISK_FORMAT biosdisk restituisce 0x0A se sono in windows
e 0x01 se sono in DOS. In realtà anche se biosdisk
restituisce questi valori sul disco rigido non c'è nessun settore rovinato,
ho anche provato su un'altro HD ma succede la stessa cosa.
Tutto questo per me è molto misterioso, non sò cosa può essere successo, e
non sò cosa fare, ho provato a fare un _DISK_RESET prima
del _DISK_FORMAT oppure a "inizializzare la tabella dei parametri dell'hd"
come dice la tabella delle chiamate al ROM-BIOS, e non ho capito
bene a cosa serve questa ultima funzione, cmq l'ho provata ma non è cambiato
niente!
Dove posso trovare un libro che spieghi bene le chiamate al ROM-BIOS,
soprattutto l'int 13h e tutte le chiamate basate su CHS e LBA. Ho
cercato in rete ma non ho trovato niente di speciale.
Se questo non è il ng adatto ditemene uno dove postare il messaggio.
Questo è un esempio di come non funziona la formattazione della prima
traccia del disco fisso:
#include<bios.h>
struct a {
  unsigned char track;
  unsigned char head;
  unsigned char sector;
  unsigned char size;
  } trackmod[63];
void main(void)
{
int ctrl,i=0;
while(i<63){
    trackmod[i].track=0;
    trackmod[i].head=0;
    trackmod[i].sector=i+1;
    trackmod[i].size=2;
    i++;
    }
ctrl=biosdisk(_DISK_STATUS,0x80,0,0,1,1,0);
ctrl=biosdisk(_DISK_RESET,0x80,0,0,1,1,0);
/* ctrl=biosdisk(9,0x80,0,0,1,1,0); */
ctrl=biosdisk(_DISK_FORMAT,0x80,0,0,1,63,trackmod);
/* Alla fine dopo la chiamata ctrl ha valore
   0x0A sotto W98 e 0x01 sotto DOS */
}

Innanzitutto con WINDOWS tu non hai modo di formattare l'hard disk ...
in quanto tutte le chiamate al bios per manipolare il disco fisso a
basso livello sono ritoccate...... sotto DOS (non intendo nella
consolle di windows!) E lascia stare l'hard disk col bios.... se devi
formattarlo fallo direttamente programmando il controller.... é
l'unico modo sicuro al 100%.
Per la doc cerca l'interrupt list di ralph brown................


...


Non sò se questo è il ng adatto, cmq espongo il problema.
Prova su it.comp.os.dos . Potrebbe essere, come ha detto Antonio, un
problema legato al sistema operativo. Prova, da finestra DOS, a lanciare
"LOCK /?", potrebbe essere quello il problema.
Saluti,
    Mardy

 ha scritto nel messaggio ...

Newsgroup: it.comp.lang.c
Titolo: che tipo ha (unsigned) + (signed) ?

Come da oggetto, se ho
unsigned int x;
signed int y;
il test
	(x+y>=0)
sembra essere sempre valido... per caso y viene convertito a unsigned?
E.
 


Mi pare di si.

Newsgroup: it.comp.lang.c
Titolo: domandina su compilatore CL

Ciao a tutti sto iniziando in questo periodo a studiare C++ , ho dei
problemi con il comando CL , come mai , per registrare le variabili di
ambiente lancio il vcvars32 , poi se lancio il compilatore mi funziona,
se chiudo il pompt del DOS il comando CL non viene piu riconosciuto.
Ho installato sia Visual Studio 2003 che il 2005 , qualcuno sa
indicarmi la soluzione? 
Ciao a tutti 
Fabrizio

Ciao a tutti sto iniziando in questo periodo a studiare C++ 
Questo è il ng sbagliato.  Dovresti rivolgerti a it.comp.lang.c++ o
meglio (visto il tuo problema) a it.comp.programmare.win32.

Newsgroup: it.comp.lang.c
Titolo: SQL Embedded

  Chi mi puo'  essere d'aiuto?? 
Chi sa dove si possono reperire delle librerie per compilare SQL embedded
nel linguaggio C? 
  Grazie in anticipo, ciao. 
--
Posted from 
fornax.tiscalinet.it
 [195.130.224.67]
via Mailgate.ORG Server - 
http://www.mailgate.org

 
Dovrebbero essere fornite dal produttore dell' RDBMS, in quanto
dipendono dal particolare RDBMS, per linux,unix vari e windows NT c'e'
il PostgreSQL che le ha.
Newsgroup: it.comp.lang.c
Titolo: lanciare eseguibile

Salve,
avrei la nevessità di eseguire un lanciare un eseguibile da un'applicazione
C senza mostrare la finestra della sessione dos....
ho usato system, la spawn1 ma mi mostra sempre la finestra...
qualche dritta??
ringrazio anticipatamente..
                                                Marco
--------------------------------
Inviato via 
http://usenet.libero.it


grazie.. risolto
grazie ho risolto....


> grazie ho risolto....
Potresti dirci come?


spawnl(P_DETACH, <path eseguibile con nome eseguibile con estensione >,<nome
eseguibile senza estensione>,<parametro 1>, <parametro 2>,...,<parametro
N>,NULL);
P.S.: la chiamata è asincrona.


Newsgroup: it.comp.lang.c
Titolo: timeout per la send...

Ho 2 programmi, un client ed un server.
Devo fare in modo che il client, dopo aver tentato per un certo periodo di
tempo( scelto da me)  la connessione al server con esito negativo, ritorni
un errore tipo "Tempo scaduto: il server non risponde!"
Per fare questo avevo pensato di usare sul client una socket in non blocking
mode e fare un ciclo con una send ed una select( per verificare se e'
scattato il timeout)
Per settare la socket in non blocking mode ho usato ioctlsocket.
Per ora però questa tecnica non funziona.
Secondo voi e' un modo giusto oppure ci sono soluzioni migliori?


se la connect fallisce ..... in timeout ti ci mandano i socket da soli....
il timeout é stabilito internamente........
cod

Newsgroup: it.comp.lang.c
Titolo: long in un vettore?

Devo copiare (spezzandolo in 4 parti) un long in un vettore per ovviare a
problemi di endian, visto che devo inviare questo numero da client a server
che non utilizzano necessariamente lo stesso "formato" dei numeri. Sapreste
aiutarmi?


una cosa del genere?
long int lungointero;
long int altrointero;
char *p;
p=(char *)&lungointero;
lungointero=0x12345678;
altrointero=((p[0])<<24)+(p[1]<<16)+(p[2]<< 8)+p[3];
printf("prima %08x\n", lungointero);
printf("dopo  %08x\n", altrointero);
-- 
-=[]=---iAN CooG/HokutoForce+TWT---=[]=-
Usa la forza Luke, con le buone maniere non ottieni nulla...

 altrointero=((p[0])<<24)+(p[1]<<16)+(p[2]<< 8)+p[3];
significa che se la mia macchina e' little-endian la cosa va bene, se pero'
e' big endian no in quanto probabilmente non andrebbe convertito nulla. Big
endian == network order.
<CODE>
unsigned long int lungointero = 0x12345678;
unsigned long int lungointero_network;
lungointero_network = htonl(lungointero);
printf("host-order   : %08x\n", lungointero);
printf("network_order: %08x\n", lungointero_network);
puts("Se i due numeri sono uguali allora la macchina e' big-endian!");
</CODE>
la mia macchina e' little-endian (AMD XP) quindi i due numeri sono diversi:
<OUTPUT>
host-order   : 12345678
network_order: 78563412
Se i due numeri sono uguali allora la macchina e' big-endian!
</OUTPUT>
Su una macchina big-endian, lo stesso codice non farebbe alcuna conversione.
Questo e' il vantaggio dell'uso di queste funzioni!
Tutto questo discorso e' socket-oriented, ma immagino fosse di quello che si
parlava. L'argomento e' pero' OT su questo NG, va semmai approfondito
altrove.
Tommy
Newsgroup: it.comp.lang.c
Titolo: Compilatore Dev C++

Salve ho alcuni problemi con il Dev C:
 
-) Il primo ï¿œ che l'ho installato su due PC; su uno ï¿œ OK, mentre su
quell'altro non riesco a far eseguire il file compilato utilizzando
ilcomando Esegui-->Esegui (Ctrl F10), ma devo cliccare sul file
eseguibile generato dal processo di compilazione
 
-) Il secondo riguarda l'istruzione scanf("%s",stringa), dove ovviamente
stringa ï¿œ un array di char.... tutto ï¿œ ok se la stringa inserita non
contiene spazi, mentre se immetto spazi (pur non superando la lunghezza
massima dell'array il comportamento del programma ï¿œ imprevedibile;
mentre se rimpiazzo la scanf(...) con il seguente codice:
 
while((c=getchar())!='\n')
stringa[i++]=c;
 
Tutto funziona regolarmente.
Come mai ? 
 

 mentre se rimpiazzo la scanf(...) con il seguente codice:
 
google "scanf"
 
Ciao Jack
-- 
Yoda of Borg am I! Assimilated shall you be! Futile resistance is, hmm?

 Come mai ?
 
La scanf legge fino al primo spazio.
 
Ciao!

 massima dell'array il comportamento del programma ï¿œ imprevedibile;
 
 
 
scanf ("%[^\n]s",stringa);
Ciao.

Newsgroup: it.comp.lang.c
Titolo: Come funziona IE4

Scusate se l'argomento non č proprio pertinente a questo NG..... volevo
sapere cosa ne pensate di IE4. Io l'ho installato visto che mi č arrivato a
casa agratis (come penso a molti di voi...) ma da quel giorno ho il dubbio
che il buon vecchio IE3.2 fosse piů veloce ed "intelligente" nel senso che
riusciva ad ottimizzare al meglio la connessione memorizzando su disco le
immagini che si ripetono. Non che IE4 non lo faccia ma č oltre un mese che
contina a ricaricarmi per intero il logo del mio provider!!!
Anche voi avete questa impressione ...... o sono io che do i numeri???
Grazie per le risposte
BR66

contina a ricaricarmi per intero il logo del mio provider!!!
io so solo che qualche giorno fa ho dovuto svuotare la cache di IE4
perche` altrimenti si ostinava a darmi errore in un'applet java, dopo
averla ricaricata ha ripreso a funzionare. altro problema nelle
connessioni ftp, che funzionano solo con stupidi raggiri. praticamente
il solito programma che si prende 50Mb ed e` zeppo di bug, in accordo
con il logo "progettato per w95" ...
--
[ranger, email: 
ran...@queen.it
]
ICQ# 6585343
Newsgroup: it.comp.lang.c
Titolo: Compilatore

Ciao ragazzi volevo sapere se esiste un ambiente integrato tipo Dev C++
che mi permetta di utilizzare
#include <netdb.h>
#include <sys/socket.h>
#include <sys/utsname.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <netinet/igmp.h>
come da gcc, oppure il modo per farlo perchè spostando i file in iclude e
lib non riesco
a fare niente, anche se lo sospettavo è stato un tentativo...


....... eh? :)
Anyway, mi sa che sei OT, vai su uno dei due:
it.comp.os.linux.development
it.comp.programmare.win32
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */

 wrote


se stai parlandi di programmare in windows come se fossi in linux (parole
mooolto povere) allora guardati cygwin.
Tommy

Newsgroup: it.comp.lang.c
Titolo: Linux, socket, telnet, netstat: una bruta fazenda.

Ho scritto un piccolo demone che attende una connessione sulla porta
3000 TCP, manda una stringa al client e infine chiude brutalmente la
socket. Nella mia beata ingenuita' speravo che bastasse lanciare il
programma e connettersi a questo in localhost tramite "telnet
localhost 3000". Tuttavia non funzia. Oltretutto con netstat non vedo
alcun listening sulla suddetta porta...
C'e' qualche anima gentile che mi puo' dare una mano?
Guarapito.
#include <stdio.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <signal.h>
#include <errno.h>
#include <unistd.h>
#include <string.h>
main (int argc, char** argv)
{
int sd1,ns1,fromlen;
char buffer[80];
struct sockaddr_in mio1_indirizzo; 
struct sockaddr_in rem1_indirizzo; 
struct hostent *host;
memset ((char *)&rem1_indirizzo,0, sizeof(struct sockaddr_in));
memset ((char *)&mio1_indirizzo,0, sizeof(struct sockaddr_in));
mio1_indirizzo.sin_family=AF_INET;
mio_1indirizzo.sin_port=3000;   
mio1_indirizzo.sin_addr.s_addr=INADDR_ANY;
/* Socket1 d'ascolto */
sd1=socket(AF_INET,SOCK_STREAM,0);
if (sd1<0) {perror("Apertura socket"); exit(1);}
/* Collegamento della socket1 all'indirizzo */
if (bind(sd1,(struct sockaddr*)&mio1_indirizzo,sizeof(struct
sockaddr_in))<0) {
perror ("bind socket1 (client)"); exit(1);}
/* Coda d'ascolto*/
if (listen (sd1,5) == -1) {perror("listen"); exit(1);}
fromlen=sizeof(struct sockaddr_in);
if (fork()==0){
setsid();
for (;;) {
if ((ns1==accept(sd1,(struct sockaddr*) &rem_indirizzo,&fromlen))<0) {
if(errno==EINTR) {
perror("accept, continuo");
continue;}
else exit(1);}
 
sprintf(buffer," hello!!! \n");
write(ns1,buffer,strlen(buffer));
close(ns1);
}
}
}

Lasciate perdere, ho capito dove sbagliavo.
Ciao,
Guarapito.
Newsgroup: it.comp.lang.c
Titolo: select()

salve a tutti avrei una domanda da porre che nasce dal fatto che magari non
ho le basi solidissime su puntatori, riferimenti ecc ecc..
allora nella programmazione di rete con socket stream in c, è possibile fare
riferimento alla primitiva select() che come tutti sappiamo accetta vari
parametri. Tra gli altri, non capisco bene perchè bisogna passare il
riferimento alla maschera (ad esempio di lettura) e non direttaamente la
maschera. E poi non capisco nemmeno come funziona esattamente questa
maschera, nel senso: io ho questa maschera di lettura
fdset rset;
la inizializzo a zero
FD_ZERO(&rset);
e poi la setto con una socket da cui poi mi metterò ad aspettare eventi
FD_SET(sd, &rset);
a questo punto cosa succede esattamente? cioè questa set non fa altro che
andare nella maschera al bit sd-esimo e porlo uguale a 1? Quindi continuando
con la mia ipotesi, ho una maschera con tutti i bit a 0 e uno solo a 1.
Analogamente se io volessi associare alla mia maschera un altra socket
attraverso la stessa macro, andrei a porre il bit sd-esimo di questa socket
a 1 in modo tale da avere all'interno della maschera 6 bit a 0 e 2 a 1?
Quindi la select si va a considerare solo i bit a 1(per quanto ne so io) e a
quel punto come fa a capire che è stato ricevuto un evento da quella
particolare socket???
boh, spero mi possiate aiutare, perchè ho le idee _alquanto_ confuse
byez

 da quella particolare socket???
FD_ISSET() 

 ha scritto nel
messaggio news:am4bup$69mc$1...@stargate1.inet.it...

Newsgroup: it.comp.lang.c
Titolo: aiuto - malloc

grazie mille! no problema! se nn mi vedi manda una mail (cosě win fa rumore)
grazie! ciao
allora...
in breve:
apro un file di lettura dati e alloco con
dato1 *tmp;
tmp=(dato1 *) malloc (sizeof(dato1));
poco dopo chiamo un'altra funzione e faccio
dato2 *tmp;
tmp=(dato2 *) malloc (sizeof(dato2));
il borland c mi ferma e mi da' una violazione della memoria sulla seconda
malloc!
se inverto l'ordine della chiamata delle funzioni l'errore mi viene dato
sull'altra... (insomma lo da' sempre sulla seconda)
č x domani, help!
ecco lo stralcio di codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
....
typedef struct _abbonato
{
 char nome[31];
   int eta;
   struct _abbonato *next;
} abbonato;
typedef struct _film
{
 char titolo[41];
   int durata,utenti,media,totale;
   struct _film *next;
} film;
.....
void main ()
{
 FILE *fr,*fw;
   film *pfilm;
   abbonato *pabb;
   int i;
   fr=fopen(ABBONATI,"r");
   pabb=leggiabb(fr);
   fclose(fr);
   fr=fopen(TITOLI_FILM,"r");
   pfilm=leggifilm(fr);
   fclose(fr);
    ....
}
abbonato *leggiabb (FILE *fr)
{
 char stringa[40];
   abbonato *last=NULL,*primo=NULL,*tmp;
   fgets(stringa,40,fr);
   while (!feof(fr) && (strcmp(stringa,"\n")))
   {
    tmp=(abbonato *)malloc(sizeof(abbonato));
    ....
    fgets(stringa,40,fr);
   }
   return primo;
}
film *leggifilm (FILE *fr)
{
 char stringa[50];
   film *last=NULL,*primo=NULL,*tmp;
   fgets(stringa,50,fr);
   while (!feof(fr) && (strcmp(stringa,"\n")))
   {
    tmp=(film *)malloc(sizeof(film)); /* violazione della memoria*/
    ...
    fgets(stringa,50,fr);
   }
   return primo;
}

*** scusate le prima 2 righe della mail non centrano nulla ***
mi serviva tenere in memoria un msg e gli appunti eran pieni! sorry

scusate, probabilmente il problema era in un'altra funzione!!
che andava a scrivere oltre i caratteri concessi (una stringa lunga 50
copiata su una lunga 40) e poi l'errore si manifestava solo nella malloc..
(strano...)
cmq non ritorna + l'errrore.... speriamo :)

    return primo;
[...]
Ma l'istruzione:
 strcmp(stringa,"\n")
è giusta? mi è venuto il dubbio...
Newsgroup: it.comp.lang.c
Titolo: portabilità di un prog

Salve a tutti
un programma in C/C++ salvo che non utilizzi librerie particolari per 
winzozz, una volta compilato come exe su windows, puo' girare su linux?
in Pratica sul mio pc vorrei installare anche linuzzo, e quindi mi 
chiedevo, essendo lo stesso hardware, che possibilità ci sono che un 
prog in C/C++ possa girare tanto su winzozz che su linuzzo?
Inoltre quanto conta il sistema operativo durante la compilazione?
thanks

 thanks

 No. Va come minimo ricompilato.
O wine nel suo caso.

 No. Va come minimo ricompilato.
....A meno di utilizzare Wine, che emula "Win" sotto Linux ;-)
Of couse, l' hardware puo' essere un problema .............
B.

bb ha scritto:

scusate se mi intrometto (sono un neofita anche io)
ma effettivamente cosa cambia in un prog compilato su linux e lo stesso 
compilato su windows?
Fermo restante, stesso hardware sottostante e stesso codice C/C++?

 Fermo restante, stesso hardware sottostante e stesso codice C/C++?
Il codice C è codice C. Non sa niente di "hardware sottostante". E'
compito del compilatore "tradurre" dal linguaggio C al linguaggio
macchina. Se il codice è standard (e scritto in maniera *decente*),
girerà su ogni macchina e su ogni sistema operativo una volta
compilato per quel target.

gunship ha scritto:

Intanto per favore non storpiare i nomi e poi vedremo anche di rispondere.
Comunque in breve:
Il compilatore viene fornito insieme ad una standard library utilizzando
esclusivamente la standard library dovresti avere un sorgente
compilabile su una qualsiasi altra piattaforma che supporta un
compilatore standard C/C++ recetente e decente.
La seconda possibilità è quella di utilizzare  librerie
multipiattaforma, quindi il sorgente compilerà su uno o più di uno dei
sistemi supportati da detta libreria. (nel caso fortunato compilerà su
tutte le piattafrome supportate).
Inoltre ogni sistema operativo utilizza un proprio formato sia per gli
eseguibili sia per il collegamento alle librerie dinamiche, quindi come
minimo a meno di non utilizzare emulatori o trucchi simili, ad esempio
freebsd ha un layer di compatibilità gnu/linux, mentre su gnu/linux
stesso puoi utilizzare wine che ti consente se hai un eseguibile windows
con dipendenze non troppo particolari di eseguirlo tramite:
wine mioprogramma.exe;
se invece vuoi un esecuzione nativa ricompilare è il minimo, altrimenti
puoi passare a linguaggi interpretati o compilati in bytecode, ossia un
formato dipendente di solito da una macchina virtuale che se è furba
tramite un compilatore jit trasforma le istruzioni di detto bytecode in
codice nativo, nota che devi avere un implementazione decente della
macchina virtuale per il sistema operativo che ti interessa, tipicamente
java e mono supportano Microsoft Windows (TM), Gnu/Linux e OSX.
Newsgroup: it.comp.lang.c
Titolo: domanda??????

ciao ragazzi,
sono nuovo del ng,
sņ programmare un pņ in pascal e in html,
secondo voi potrei intraprendere la difficile strada verso la programmazione
in C???????

 programmazione in C???????
Se tu stesso dubiti, noi che ne sappiamo? :-)
Forza, forza... 
-- 
---
In silenzio anche un idiota sembra intelligente. Ma non c'č problema,
l'idiota vuol sempre dire la sua.

 Se tu stesso dubiti, noi che ne sappiamo? :-)
Beh, fa' bene a dubitare, il C come il C++ non sono 2 linguaggi facili da 
affrontare, pero' parte da una buona base (il Pascal) che lo aiuta molto a 
capire la programmazione strutturata... certo, ora deve disimparare la 
filosofia del Pascal per imparare quella del C (v. firma), ma non e' 
impossibile, anzi in molti casi e' molto facile da dimenticare quella del 
Pascal :)
L'HTML comunque non c'entra nulla come la programmazione (io direi "cosi' 
come il VB non c'entra nulla con la programmazione", ma questo e' un punto 
di vista personale): e' solo un linguaggio di Markup.
-- 
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."

 ---
io mi sentirei anche pronto, ma dato che penso di rivolgermi con persone che
hanno molta più esperienza di me, mi chiedevo solo se ciò che sò sulla
programmazione sarebbe bastato per iniziare a programmare in C.

 programmazione sarebbe bastato per iniziare a programmare in C.
Va tranquillo.
Ciao,
-- 
         (__)	      | Nicholas Wieland	    |    -     ------------
	 (oo)	      | 
nicholas...@yahoo.it
   |    -    | There's no |
   /------\/ 	      | Debian GNU/Linux / Mac OS X |    -    | place like |
  / |    ||  	       -----------------------------     -    | *GNOME(2)* |
 *  /\---/\           ...."Have you mooed today?"....    -     ------------
Newsgroup: it.comp.lang.c
Titolo: [REQ] Manuale.....

volevo sapere se esistono manuali completi per linguaggio C scaricabili da
internet....
grazie
Micio

 grazie
prego Ciao!

Newsgroup: it.comp.lang.c
Titolo: durata di esecuzione di un main

Ciao! Sapete come posso fare a calcolare quanto tempo impiega un main?
Il problema e' che usando clock() all'inizio e alla fine del main mi da
un risultato errato perche', credo, il main chiama funzioni
multiprocesso, create con pthread_create. Ho l'impressione che non
valuti il tempo di esecuzione di questi thread, che poi sono il blocco
centrale del programma.
Non vorrei usare gettimeofday() per evitare che il tempo di esecuzione
risenta anche di altre operazioni che sta svolgendo il processore (tipo
altri programmi in esecuzione).
Ciao! Gianni
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 altri programmi in esecuzione).
Visto che ti interessa il tempo del main (quindi deduco del programma in
toto), usando da shell
time <tuo comando>
dovrebbe essere possibile ottenere le stesse info e anche di + senza toccare
il  tuo codice...
man time
ciao

 ciao
Hai ragione, ma conosci un modo per calcolare il tempo effettivo
impiegato dalla CPU per eseguire il mio programma (del tipo in CPU
CLOCK), senza che consideri un 'affaticamento' della CPU causa
esecuzione di altri programmi?
Il tutto mi serve per sapere con esattezza quanto tempo impiega il mio
programma ad essere eseguito, indipendentemente dal carico sul mio
computer.
Mi pare che time indichi il tempo totale di esecuzione e basta. (oltre
alle altre statistiche)
Grazie.
Ciao. gianni 
