mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: Problemi con atof()

Salve,
alcune volte utilizzando atof mi viene stampato -Inf.
Potreste illustrarmi in quale condizione mi stampa questo numero ?
Grazie
xoooox
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Potreste illustrarmi in quale condizione mi stampa questo numero ?
significa che è un numero troppo grande per essere rappresentato
in un double. numero negativo in questo caso. esempio:
atof("-1e-100000")
ti restituirà un double con valore speciale di infinito negativo

Newsgroup: it.comp.lang.c
Titolo: Come faccio a ...

Salve a tutti , come faccio ad aprire un file di testo e visualizzarlo in
una finestra Dos (uso Djgpp)?
Grazie a tutti
Ciao :-) Roberto

 ha scritto nel messaggio
news:8j2rsi$sgr$1...@pegasus.tiscalinet.it...


Newsgroup: it.comp.lang.c
Titolo: Mouse con tasti.

Vorrei fare un programmino per muovere la freccetta del mouse con i la
tastierina numerica( o altri 4 tasti programmabili).
dato che il mio mouse oramai e rotto..
come devo fare?
eiste gia qualcosa in rete?
denghiu
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

tastierina numerica( o altri 4 tasti programmabili).
Devi usare accesso facilitato di windows.
Alla prossima,
Giovanni Cappellini
http://giovacappo.cjb.net
ICQ 166932196

dato che il mio mouse oramai e rotto..
dimenticavo: non ti puoi comperare un altro mouse?


 Giovanni Cappellini
ma..ma..perche' mai dovrebbe avere windows installato?
riccardo

ma..ma..perche' mai dovrebbe avere windows installato?
Se ha windows ha trovato la soluzione, se ha Linux, OS/2, BeOS,
AmigaOS, MacOS dovra' chiedere a qualcun'altro che ne sa piu' di me.

Newsgroup: it.comp.lang.c
Titolo: Linux && keyboard

Salve a tutti. Come si fa a intercettare gli interrupt della tastiera
sotto linux? ad esempio, se sto scrivendo un gioco tipo nibbles e volessi
muovere il serpente a destra e a sinistra senza dare invio, come dovrei
fare? e' proprio necessario mettere la tastiera in raw mode?
mi potete dare qualche programmino di esempio?
grazie
 _____________________________________________________
|                                          .--.        |
|                                         |O_O |       |
|  Michele Berlingerio                    |:_/ |       |
|    Studente di Informatica             //   \ \      |
|    Universita' di Pisa                (|     | )     |
|  e-mail: 
ber...@cli.di.unipi.it
     /'\_   _/`\     |
|    Rappresentante degli studenti     \___)=(___/     |
|                                                      |
|______________________________________________________|

 e' proprio necessario mettere la tastiera in raw mode?
  Si`.
  Ad ogni modo, questo newsgroup si occupa solo del sottoinsieme comune
a tutti i linguaggi C definito dagli istituti di standardizzazione
ANSI/ISO, per cui la tua domanda, che tratta di un argomento decisamente
dipendente dalla piattaforma, e` /off/ /topic/. Ti consiglio di chiedere
in qualche newsgroup relativo alla programmazione UNIX/Linux.
 
	Alla prossima,
		Marco

 grazie
Anche se li potessi usare (come in DOS), gli interrupt sono molto, molto
lenti.
ciao
Newsgroup: it.comp.lang.c
Titolo: Problemi di installazione con il DJGPP!!

Salve a tutti,
in base a dei suggerimenti letti proprio su questo ng ho deciso di scaricare
come compilatore free il DJGPP!!
Poiche' qui' non c'era alcun link dopo una breve ricerca con yahoo sono
riuscito a raggiungere la pagina  
http://www.delorie.com/djgpp/
  ,dovrebbe
essere la pagina ufficiale di questo progetto giusto?
Se esistessero delle pagine migliori di questa please fatemelo sapere!!
Comunque non e' stato difficile a questo punto capire di cosa avevo
bisogno,infatti
il sito in questione dispone di una utilissima pagina di ricerca dove una
volta impostati i parametri che ci interessano,ti viene data una lista di
file da scaricare che contengono tutto cio' di cui hai bisogno!!
Premettendo che io sono ancora un novellino della programmazione in C e che
finora ho scritto semplici programmi solo con un Borland C++ 2.0 ho
impostato come
parametri i piu' semplici possibili e cioe': ambiente operativo DOS e ho
scelto come
editor il Rhide!!
Ho scaricato questi files:
1) bnu281b.zip
2)faq210b.zip
3)gcc280b.zip
4)csdpmi4b.zip
5)djdev201.zip
6)mak3761b.zip
7)rhide14b.zip
8)txi390b.zip
Ho letto le FAQ ed ho seguito le istruzioni di installazione alla lettera
,ho creato la cartella c:\djgpp e ho espanso gli archivi in questa dir
rispettando le varie directory, ho aggiunto le due linee nel file
autoexec.bat
(anche se non ho capito a cosa servano effettivamente queste due righe....se
qualcuno me lo spiega...); a questo punto le FAQ dicono che lanciando il
file info.exe che si trova nella directory BIN  posso leggere le
informazioni sui vari moduli installati.....in realta quando lancio questo
file mi appare la risposta:
info.exe:DIR:no such file or directory(ENOENT)
cosa vuol dire???????
Inoltre quando lancio il Rhide(che devo dire e' molto simile all'ambiente
BORLAND) e provo a leggere l'help in linea mi dice che non lo trova
PERCHE'????????
In poche parole siccome ritengo che questo ambiente di sviluppo sia
relativamente efficace(mi sbaglio??,ne conoscete di migliori o di piu'
semplici,sempre freeware???) e siccome ho riscontrato qualche problema ad
utilizzarlo se qualcuno che lo usa potesse aiutarmi gliene sarei grato!!!
Se ritenete che questo non riguardi tutto il newsgroup(anche se, a quanto ho
letto di recente, credo che molti siano interessati a compilatori free)
rispondetemi pure in e-mail.!!!
GRAZIE MILLE!!!
--
 <---------------------------------------------------------------->
  ATTENZIONE:per rispondere in e-mail togli
                          nopubblicita' dall ' indirizzo..
  POWWOW:    
pier...@hotmail.com
.
 <-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:->

 utilizzarlo se qualcuno che lo usa potesse aiutarmi gliene sarei grato!!!
djgpp e` il migliore, e di molto.
---
Ranger, togli .fr dal mio indirizzo per rispondere
http://members.tripod.com/%7Eranger_rg/
Newsgroup: it.comp.lang.c
Titolo: Domanda forse stupida:

Non si può aprire un file testo al contrario, cioè partendo dall'ultima riga
e andando all'indietro?
Perdonatemi se è troppo assurda.....mi mancano i fondamentali!
Grazie, Fulvio.

 writes:

In senso stretto, no.  Sistema i records in una double-linked list e
rileggila al contrario...  Se sei in ambiente Unix-like, guardati il
sorgente del programma 'tac' (GNU textutils; come 'cat', ma l'output
e' dall'ultimo record fino al primo).  
-- 
Maurizio Loreti                      
http://wwwcdf.pd.infn.it/~loreti/mlo.html
Un. of Padova, Dept. of Physics - Padova, Italy          
lor...@padova.infn.it

 wrote in message
rmr9lsy...@cmssun2.pd.infn.it...


you wrote :
#Non si puň aprire un file testo al contrario, cioč partendo dall'ultima riga
#e andando all'indietro?
Si puo' simulare con un programma come quello che ti ho scritto di
seguito, che e' un filtro che ricopia l'input verso l'output
invertendo l'ordine delle linee.
Il problema sorge quando il testo e' formato da molte linee non
facilmente gestibili per via della ricorsione che consuma molta
memoria.
Una soluzione, in questo caso, e' quella di suddividere il file
sorgente in piccole porzioni da trattare singolarmente, da riunire in
un secondo momento e da leggere.
--- reverse.c :
#include <stdio.h>
void reverse()
{
     char buff[80] ;
     if ( fgets( buff, sizeof buff, stdin ) )
     {
        reverse() ;
        fputs( buff, stdout ) ;
     }
}
main()
{
    reverse() ;
}
Andrea Laforgia        (
andrea_...@bigfoot.com
)
----------------------------------------------------
There is nothing better for understanding a kangaroo
than seeing it jump.
----------------------------------------------------

 invertendo l'ordine delle linee.
Altrimenti si potrebbe andare alla fine del file (utilizzando fseek()) e
poi procedere a ritroso (sempre con fseek()) cercando i vari fine linea
('\n') e stampando le linee ogni volta che queste sono complete.
EMG

 wrote in message
37B99FBD...@flashnet.it...


Newsgroup: it.comp.lang.c
Titolo: chi conosce inf. su scheda seriale rs485?

...mi servirebbero informazioni su questa scheda chi mi puņ aiutare ???
saluti
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

saluti
Sei OT
http://www.google.it
-- 
Cordiali saluti
  Artemio

 
http://www.google.it
scusa, ma non ho capito che cosa vuol dire OT? sono nuovo di mailgate 
e molte convenzioni del forum non le conosco ti ringrazio 


 saluti
OT = Off Topic. Quello che hai chiesto non c'entra niente con quanto
trattato nel NG.
Con 2 sec di google avresti trovato
http://www.rs485.com/
I motori di ricerca ci sono: usiamoli! (PP) :-)
C:\>iao Angelo


Newsgroup: it.comp.lang.c
Titolo: Turbo C versione 2.0

Qualcuno sa dove posso trovarla. L'importante è che giri su un 486.
Grazie
Tristana
Newsgroup: it.comp.lang.c
Titolo: Aiuto su rotazione 2D pixel

Scusate.
Qualcuno puņ aiutarmi su come fare delle rotazioni di pixel 2D?
Grazie.
Stefano (
nep...@freemail.it
)

Qualcuno puņ aiutarmi su come fare delle rotazioni di pixel 2D?
       rx = cos(alfa)*x-sin(alfa)*y;
       ry = sin(alfa)*x+cos(alfa)*y;
Dove (x,y) e' il vecchio punto,  (rx, ry) il nuovo e alfa l'angolo di rotazione.
Andrea Laforgia
(remove NOSPAM from my address before reply via e-mail)
ICQ #8328956

Newsgroup: it.comp.lang.c
Titolo: Come trovare un IDE per il C e per W7

Devo ahime! insegnare il C.
Dove posso trovare un IDE per windows 7 professional.
Aiutatemi al più presto, devo esercitarmi anche a casa.
Mille grazie 
 


Virtualbox + una distro linux senza GUI.
Cosi oltre a C imparano ad usare (un po') linux, almeno uno degli editor
inclusi (emacs, vim, nano, ecc.), il makefile, come funziona un
compilatore (fase di compilazione, fase di link,...) e magari anche gdb.
 
Ciao Jack
-- 
Yoda of Borg am I! Assimilated shall you be! Futile resistance is, hmm?


Fai un favore ai tuoi futuri alunni, e non usare un IDE.
Usa invece un buon editor e make.
 
 
Solo alla fine del corso fai presente che ci sono strumenti come gli IDE.
 
 
 
Ciao  Manlio


A fini didattici meglio un compilatore c a linea di comando, un makefile 
ed un editor ma se proprio vuoi un ide vai su visual studio


allora piuttosto Code:Blocks, perlomeno funziona su tutti gli OS.



Nessun IDE, per carità.
Un editor che scelgono loro (oppure un notepad++ se devi scegliere te) e un
compilatore che scegli te, tutto qui.
 
Ciao!
 


 
L' OP non  ha chiesto  un ide per tutti  gli OS ma per win e quindi mi 
sono attenuto a visual studio che è senza dubbio il miglior ide per windows
A fini didattici può andare bene anche Code::Blocks, ma se fosse per me 
e come avevo affermato, non userei un ide per insegnare il c

Newsgroup: it.comp.lang.c
Titolo: c + asm

Ciao a tutti,sto tentando di utilizzare del codice asm all'interno di un
programma c senza risultati.
Con il codice seguente ottengo errori :
#include "stdafx.h"
#include <stdio.h>
int main(void)
{
 char format[] = "%s %s\n";
char hello[] = "Hello";
char world[] = "world";
printf("Hello World!\n");
 __asm
   {
      mov  eax, offset world
      push eax                   <-error improper operand type
      mov  eax, offset hello
      push eax                   <-error improper operand type
      mov  eax, offset format
      push eax                  <-error improper operand type
      call printf
      //clean up the stack so that main can exit cleanly
      //use the unused register ebx to do the cleanup
      pop  ebx
      pop  ebx
      pop  ebx
   }
 return 0;
}
Devo settare qualche opzione?Uso vc++
Grazie x le eventuali risposte

 Devo settare qualche opzione?Uso vc++
Il tuo codice fa uso di estensioni del compilatore, le quali non sono 
argomento di discussione di questo newsgroup.
Dovresti rivolgerti ad un gruppo relativo al tuo compilatore (credo uno 
nella gerarchia microsoft.public.it.*), oppure (se i  problemi 
riguardano l'assembly) it.comp.lang.
Newsgroup: it.comp.lang.c
Titolo: includere la libreria math.h in linux con gcc

Ciao a tutti,
ho scritto un programma per la mia tesi con il visual C, in linguaggio ANSI
C puro. Ora devo riuscire a compilarlo in linux.
eseguendo gcc -o nomeeseguibile nomefile.c il compilatore mi dice che non
trova le funzioni pow, sqrt ecc...tutte contenute nella libreria math.h che
è stata inclusa all'inizio con il solito #include<math.h>.
Come si fa ad inserire la libreria sotto linux?
Grazie mille.
Ciao a tutti.
Sergio

 Come si fa ad inserire la libreria sotto linux?
Innanzitutto devi sapere qual'e' il nome della libreria, o meglio del file 
compilato. Esempio: libpippo.a
Per dire al GCC che vuio linkare questa libreria devi dire:
gcc -lpippo
Ovviamente devi avere la libreria nel path standard, se non fosse cosi' puoi 
estendere il path per le librerie passando al GCC questa opzione: -Ldir.
Tornando al discorso della libreria matematica, questa non e' inclusa nella 
libreria standard, ma le trovi con il nome di libm.a (il che ti spiega 
perche' l'opzione -lm) e in una directory gia' presente nel path.
-- 
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."

grazie mille.
ciao.
Sergio
"Mox" <m...@email.it.invalid> ha scritto nel messaggio
news:nZ399.86214$n04.2...@twister2.libero.it...

Newsgroup: it.comp.lang.c
Titolo: Aiuto per programma...





Ciao! 


Premessa: Sono alle primissime armi.... :)


Sto scrivendo un programma che deve aprire un file, che gli 
viene fornito tramite riga di comando(il file deve contenere un testo 
qualsiasi).


Il programma deve controllare se ci sono parole uguali alle 
parole che sono contenute in un altro file (che è sempre escludi.txt) e poi fare 
altri lavori....


Per adesso stò cercando di trovareun metodo per il controllo 
delle parole. Io pensavo di leggere un file alla volta e mettere tutte le parole 
in un 
char *word[] 


per ogni file in modo da poi confrontare le stringhe 
semplicemente...   Il mio problema è che non so come creare un 

char *word[] 
visto che non posso


lasciarlo senza dimensione oppure se lo dichiaro 
char *word[]={""}; 

sarebbe di dimesione 1 quidni per una sola stringa.... Forse stò 
facendo degli errori madornali....ma sono ancora all'inizio. Secondo voi è il 
metodo migliore oppure stò percorrendo la strada "più tortuosa"?


Ringrazio anticipatamente chi mi darà un consiglio...


Grazie!


Ciao!


 


  -Davide-


x...@ngi.it


 



 senza dimensione 
  Le due liste di parole ce le hai gia` su file e nel caso del primo
testo non vale proprio la pena di allocare memoria centrale e poi
caricarcele dentro, basta leggerle sequenzialmente dal file stesso.
  Al piu`, puoi caricare solo quelle di 'escludi.txt', ovvero la lista
che dovrai scandire piu` volte. Per farlo, ovviamente, ti basta leggere
una volta il file contandole, allocare dinamicamente il vettore che
dovra` contenere le parole, e poi caricarle.
  Per eseguire il conteggio, ti basta incrementare una variabile intera
ogni volta che nel file incontri il separatore delle parole. Per
esempio:
<code>
	#include <stdio.h>
	#include <stdlib.h>
	/* ... */
	int ch,word_count=0;
	char **words;
	/* ... */
	while((ch=fgetc(INPUT))!=EOF)
		if((ch!=' ')||(ch!='\n')||...)
			word_count++;
	rewind(INPUT);
	words=malloc(sizeof(char *)*word_count);
	/* ... */
</code>
	Alla prossima,
		Marco
Newsgroup: it.comp.lang.c
Titolo: TCPServer In Unix. Problema con le fork (?)

Salve ragazzi. Vi pongo un problema abbastanza stupido ma proprio non mi
viene la soluzione. Dovrei realizzare un server tcp che accetta due
connessioni e manda/riceve messaggi da e verso esse
(in pratica riceve due numeri, li somma e manda la somma a tutti e due)
Questo significa che dovrei mettere il server in listen e per ogni
accept creare un fork chiudere la connessione dal principale e
aspettarne di nuove.
il problema è che se creo due fork come faccio dallo stesso flusso del
programma a parlare con i due client connessi...? avrei infatti due
server che non condividono le stesse variabili (e quindi le due
associazioni ai client connessi).
Che mi perdo?

 programma a parlare con i due client connessi...?
Quindi fanne uno di fork. Aspetti che ci sia una connessione, poi 
aspetti la seconda, poi fai il fork (se vuoi). Se è il solito 
problemino giocattolo puoi anche non fare nessuna fork e usare una 
banalissima macchina a stati. Aspetti la connessione 1, metti da parte 
il socket, aspetti la connessione 2, metti da parte il socket, elabori, 
spedisci il risultato sul socket 1, spedisci il risultato sul socket 2, 
ritorni allo stato zero.
-- 
Articolo 33 della Costituzione italiana: L'arte e la scienza sono 
libere e libero ne è l'insegnamento
Newsgroup: it.comp.lang.c
Titolo: HELP URGENTE

Devo scrivere il seguente programma:
" Dato l'array di short 8,5,2,7,1,6,3,0,4,9  ordinarlo in ordine
crescente. Prima stamparlo come  sta, poi ordinarlo nello stesso array."
Ho sviluppato le due finzioni findmin e scambia, ma non so come andare
avanti per completare il programma. Ringrazio in anticipo chi mi darà
una mano.
Ecco quello che ho fatto finora
-------------------------------------------------------------------
/*  Dato l'array di short 8,5,2,7,1,6,3,0,4,9  ordinarlo in ordine
crescente. Prima stamparlo come  sta, poi ordinarlo nello stesso array.
*/
#include <stdio.h>
void main(void);
short* findmin(short*, short*);
void scambia(short*, short*);
void main(void) {}
short* findmin(short* cursore, short* fine)
{
 short piccolo = *cursore;
 short* ppiccolo = cursore;
 for (; cursore<fine; cursore++)
 {
  if (*cursore < piccolo)
  {
   piccolo = *cursore;
   ppiccolo = cursore;
  }
 }
 return ppiccolo;
}
void scambia(short* a, short* b)
{
 short app = *a;
 *a = *b;
 *b = app;
}
--
Posted from 
dns.onenet.it
 [194.185.99.135] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

>  V prego almeno un suggerimento !!!!


 wrote in message
3954CEB9...@onenet.it...



void main(void){
int main( void )
main non puo' avere ritorno "void", ma *deve* averlo "int".
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
--------------------------------------------------------------
"Partire e' un po' morire e morire e' partire un po' troppo !"
--------------------------------------------------------------

 crescente. Prima stamparlo come  sta, poi ordinarlo nello stesso array."
Ad es.:
---------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
short array[] = { 8, 5, 2, 7, 1, 6, 3, 0, 4, 9 };
int compara(const void *a, const void *b)
{
	return *((short *) a) - *((short *) b);
}
void stampa(short *pc, int len)
{
	while (len-- > 0)
		printf("%hd ", *pc++);
	putchar('\n');
}
int main(void)
{
	int len = sizeof array / sizeof array[0];
	stampa(array, len);
	qsort(array, len, sizeof(short), compara);
	stampa(array, len);
	return 0;
}
---------------------------------------------------------------
Seriamente, ti converrebbe dare un'occhiata a un qualsiasi testo 
sugli algoritmi.
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)
Newsgroup: it.comp.lang.c
Titolo: allocazione enum

ciao a tutti
volevo sapere "quanto mi costa" in termini di spazio in memoria una 
variabile di tipo Digits dichiarato sotto:
enum Digits = '0','1','2',...'9';

 enum Digits = '0','1','2',...'9';
in generale se fai sizeof(tipo_di_dato)  oppure sizeof(variabile)
dovresti ottenere un numero di byte che sicuramente occupi con
quel tipo di dato o con quella variabile.
Per problemi di allineamento i byte allocati potrebbero essere di piu'.
Comunque penso che la cosa dipenda dal compilatore: un compilatore
potrebbe decidere di trattare tutti gli enum come int
(e quindi occupare ad esempio 4 bytes), un altro potrebbe decidere
di usare il numero di bytes minimo che gli servono per rappresentare
il tipo, in questo caso 1 byte.
per fare l'esempio di un compilatore diffuso (il gcc),
di default gli enum occupano 4 bytes come gli interi,
ma con uno switch di compilazione ( -fshort-enums )
si puo' imporre al compilatore di usare il numero minimo di
bytes.
ciao,
g.

 il tipo, in questo caso 1 byte.
Il compilatore, se conforme allo standard, *deve* trattare le costanti
di enumerazione come gli int.
Inoltre, essendo delle vere e proprie costanti, sono soggette agli
stessi tipi di ottimizzazione che ti aspetteresti per un const T; non e`
detto che venga effettivamente allocato dello spazio per esse.
Luca
-- 
Home: 
http://kronoz.cjb.net
Recursion n.:
	See Recursion.

 ciao,
ciao e grazie

 
Credo che l'allineamento corrisponda in questo.
-- 
Tnk
Luca "Kleidemos" Francesca
Un computer a un altro quando si incontrano:
"Ciao, come ti boota oggi???"
Newsgroup: it.comp.lang.c
Titolo: Help C-programming

Ciao a tutti,
vi scrivo perchè avrei un bisogno abbastanza urgente di aiuto nella
programmazione in C per la mia tesi in cui dovrei sviluppare una
simulazione. Se qualcuno di voi fosse disponibile a Roma io sono
tranquillamente disposto a pagare o fare scambio con altre conoscenze
(fisica, analisi matematica,.....) pur di risolvere il mio problema in modo
efficente e, al contempo, imparare a programmare, o, almeno, la logica
sottostante alla programmazione.
Scrivetemi anche una mail senza problemi, vi risponderò e parleremo di
tutto.
Ciao!
Aleph
--------------------------------
Inviato via 
http://usenet.libero.it

 tutto.
come e' possibile arrivare a dover dare una testi, in cui si richiede di 
realizzare un progetto in un linguaggio qualunque, senza conoscere non 
dico le basi del linguaggio, ma quelle della programmazione? Secondo me 
c'e' qualcosa di strano in un sistema universitario siffatto... ma io 
sono di un'altra epoca, probabilmente non capisco le generazioni di oggi


bhe nella mia in un mese scarso di lezione (3 lez a settimana) ci
hanno dato da fare 8 capitoli del lippman (C++ corso di
programmazione).....ed ovviamente alla fine non è che ci si è capito
molto :)
io Informatica la rivolterei come un calzino......Informatia è troppo
generale per una laurea.....dovrebbero dividerla un modo che ognuno
scelga il proprio percorso sulle cose che realmente vuole studiare e
che gli possano servire. 

 che gli possano servire.
Cosi poi avremo tutti esperti in design di pagine web, che mettono nel 
piano di studi grafica 3d per fare i videogiochi, scornandosi poi col 
fatto che un buon renderer richiede conoscenze di assembly e di C che 
sono tutt'altro che superficiali...
Spero che sia colpa mia, che non vi capisco, lo spero ardentemente

Spero che sia colpa mia, che non vi capisco, lo spero ardentemente
Lo scambio di pensieri serve a questo :) a capire
Ciauz....(a natale mi regali un pandoro?) :)
Newsgroup: it.comp.lang.c
Titolo: STRINGHE

Allora io sono sempre quello del programma che confronta le stringhe ma
con mio disappunto non riesco ad arrivarci in fondo...Io dovrei
realizzare un programma che riceve in ingresso due file di testo e li
apre in lettura. Per ogni riga del primo file deve contare quente volte
compare al suo interno la stringa presente nella riga di uguale
posizione del secondo file. Infine scrivere i risultati in
corrispondenti righe di un file di output. Allora io arrivo a leggere le
righe dei due files (grazie realknip)ma poi non sono in grado di operare
il confronto parola per parola. Es. prima riga primo file: mi chiamo
giovanni-----prima riga secondo file: il mio nome è giovanni-----terzo
file prima riga: giovanni compare una volta.Se qualcuno mi potesse dare
una mano gliene sarei grato (possibilmente entro mercoledi sera).
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXLENGTH 100
int conta (char *, char *);
void inserisci(int, char *, char *, FILE *);
int main ()
{
int count;
char nomefile1[_MAX_PATH+_MAX_FNAME];
char nomefile2[_MAX_PATH+_MAX_FNAME];
char nomefile3[_MAX_PATH+_MAX_FNAME];
char riga1[MAXLENGTH];
char riga2[MAXLENGTH];
char * buf1;
char * buf2;
const n=100;
FILE * file1;
FILE * file2;
FILE * file3;
//carica i dati di input
printf("inserisci il nome del primo file origine:");
gets(nomefile1);
printf("scrivi il nome del secondo file origine:");
gets(nomefile2);
printf("inserisci il nome del file destinazione:");
gets(nomefile3);
//apre i files
if ((file1=fopen(nomefile1,"r"))==NULL)
{
printf("Il primo file non esiste \n");
return (-1);
}
if ((file2=fopen(nomefile2,"r"))==NULL)
{
printf ("Il secondo file non esiste\n");
return (-1);
}
if ((file3=fopen(nomefile3,"a"))==NULL)
{
printf ("impossibile aprire il file di output\n");
return (-1);
}
//legge le prime 2 righe
buf1 = fgets(riga1, MAXLENGTH, file1);
buf2 = fgets(riga2, MAXLENGTH, file2);
//legge tutte le altre righe
while (1)
{
if (buf1 == 0 || buf2 == 0)
{
break;
}
count = conta(riga1, riga2);
if (count != 0)
{
inserisci(count, riga1, riga2, file3);
}
buf1 = fgets(riga1, MAXLENGTH, file1);
buf2 = fgets(riga2, MAXLENGTH, file2);
}
//chiude tutto e saluta
fclose(file1);
fclose(file2);
fclose(file3);
return 0;
}
int conta (int n,char * riga1, char *riga2)
{
//questa funzione deve ritornare il numero di volte
//in cui riga1 e' contenuta in riga2
return 0;
}
void inserisci(int count, char * riga1, char * riga2, FILE * file3)
{
//questa funzione scrive un output formattato in file3
//del tipo "ho trovato count volte "riga1" nel secondo file 
return;
}
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

"Pippo Baudo" ha scritto:
cut
ma se per esempio in un file alla prima riga ho la parola LA
e nel secondo file alla prima riga la frase č "la mela", quante volte c'č
LA? 1 o 2? e poi deve essere case sensitive?? cioč "casa" č diverso da
"CASA" che č diverso da cAsa che č diverso....?
ciao... a proposito mercoledě oggi??

 ciao... a proposito mercoledì oggi??
Nel tuo esempio "la" compare una sola volta; scrivo tutto minuscolo cosi
faccio prima e mercoledi è oggi quindi se mi puoi aiutare fallo entro le
23.00

Newsgroup: it.comp.lang.c
Titolo: MOLTIPLICARE CON SHIFT E ADD

Salve ragazzi, spero mi possiate aiutare. Come posso implementare
l'algoritmo che usa SHIFT E ADD per moltiplicare due numeri? 
Davide

 l'algoritmo che usa SHIFT E ADD per moltiplicare due numeri? 
ciao.
Hai provato a cercare su google? Con "algoritmo moltiplicazione shift 
add" ne escono una valanga.
ciao
Giacomo

 Davide
http://digilander.libero.it/npaolini/NPS02/NPS02.html

Newsgroup: it.comp.lang.c
Titolo: Path eseguibile da argv

Ciao All,
Ho letto su un libro che in argv[0] si trova il path dell'eseguibile, ma
credevo fosse il path reale, invece se vado nella stessa dir dell'exe e lo
lancio in argv[0] ci trovo solo il nome.. Da dove lo prendo il path completo?
Ciao,
FC - 
fc...@softhome.net
FidoWEB -> 
http://bbs.romacivica.net/fido

 lancio in argv[0] ci trovo solo il nome.. Da dove lo prendo il path completo?
Non credo ci sia un modo portabile per farlo. Devi rivolgerti a funzioni
specifiche del tuo compilatore o ad API del tuo sistema operativo.
EMG

con getcwd trovi la directory corrente per il drive indicato, mentre con
getdrive trovi il drive corrente, mettendole insieme trovi la dir corrente
sul drive corrente, e quindi il path del tuo eseguibile.
Davide

lancio in argv[0] ci trovo solo il nome.. Da dove lo prendo il path completo?
system( "cd > currdir.txt" ) ;
poi apri "currdir.txt" e prelevi il path di appartenenza.
 
--
Andrea Laforgia
andrea_...@bigfoot.com


Fallo partire con il path dalla radice:
esegui:    /path/FileName
--
Posted from 
mta01-acc.tin.it
 [212.216.176.32]
via Mailgate.ORG Server - 
http://www.mailgate.org

puoi anche fare
system( "pwd > currdir.txt" ) ;
Newsgroup: it.comp.lang.c
Titolo: Ancora sull'input di char senza invio

Ho postato pochi giorni fa questa richiesta: prendere in input dei caratteri
uno ad uno senza premere Invio ogni volta.
ALoR mi ha risposto e gentilmente mi ha mandato due funzioni adatte allo
scopo che devo dire funzionano molto bene. Tuttavia non riesco a comprendere
bene il significato di queste funzioni, anche se ho intuito che lavorano su
strutture definite nel file termios.h che infatti bisogna includere.
Modificano qualcosa relativo all'input... Ma non so bene cosa e come.
So che esiste anche una funzione getch() che fa la stessa cosa ed è
contenuta nel curses.h (grazie a Davide Petilli) ma non mi funge, perchè
anche se scrivo
#include <curses.h>
main() {
char c=getchr();
}
e basta, il gcc mi dà degli errori dicendo che alcuni parametri non sono
definiti  per la funzione getch() etc. etc.
Riporto sotto invece il codice come mi è stato invece postato da ALoR delle
altre funzioni:
#include <termios.h>
   struct termios old_tc;
   struct termios new_tc;
void set_raw_term()
{
    tcgetattr(0, &old_tc);
    new_tc = old_tc;
    new_tc.c_lflag &= ~(ECHO | ICANON);   /* raw output */
    new_tc.c_cc[VTIME] = 1;
    tcsetattr(0, TCSANOW, &new_tc);
}
void reset_term()
{
    tcsetattr(0, TCSANOW, &old_tc);
}
#endif
prima della scanf() o megli della read()  usei set_raw_term() dopo --e
ricordati di farlo-- usi reset_term()
Accetto ogni tipo di consiglio sull'argomento
grazie a tutti

 perchè anche se scrivo
 
La definizione e'
int getch();
se compili in c++ ti da' errore di tipo mettendo char c = ...
se compili in c, allora su alcune versioni di gcc devi 
predichiarare c
int main(){
  char c;
  c = getch;
}

 }
Comunque in linux bisogna specificare al compilatore di linkare le librerie 
ncurses con l'opzione -lcurses da linea di comando.
Credo che sia questo l'errore che ha "afflitto" snoopy.
Ciao.
-- 
Davide Petilli
e-mail. 
davide....@NOSPAM.libero.it
Per scrivermi togli NOSPAM dal mio indirizzo!

 Modificano qualcosa relativo all'input... Ma non so bene cosa e come.
ti ho gia' risposto via mail privata...
bye
Newsgroup: it.comp.lang.c
Titolo: dove trovo online esempi con suluzioni ad esercizi del tipo ...

Sono agli inizi e faccio ancora fatica a partire da zero ... grazie
1) vogliamo copiare il file di caratteri pippo.txt da disco a memoria
centrale. Accedendo al file in modo rigidamente sequenziale e non conoscendo
la sua dimensione, usiamo la strategia di allocare progressivamente in
memoria centrale tramite malloc fintanto che vi sono ancora caratteri da
leggere.
Allochiamo con malloc un blocco di memoria di 1024, lo connettiamo tramite
puntatore al blocco di memoria eventualmente allocato in precedenza, quindi
copiamo i caratteri dal file al blocco di memoria e cosě via iterando fino a
EOF.
Scrivete il codice di una funzione che esegua queste operazioni e
restituisca un puntatore alla testa di blocchi generati.
2)Data una lista concatenata semplice il cui nodo generico č:
struct lista { int dato; struct lista *next; };
scrivere il codice di una funzione f che riorganizza i nodi della lista in
modo che i nodi di posizione dispari siano posti prima di tutti i nodi di
posizione pari,p reservando perň l'ordine relativo sia dei nodi dispari che
dei pari.
Assumete che la funzione f riceva in ingresso un puntatore alla testa della
lista e che la lista in questione abbia almeno un nodo. La funzione deve
restituire un puntatore alla testa della lista riorganizzata.


wrote:

sembra il testo di un esame o di un concorso
PRRRRRRRRRRRR

"sartori" <ve...@vidi.vinci> ha scritto nel messaggio
news:3d301f44...@news.tin.it...

PRRRR ... tua sorella ...
e' un vecchio tema d'esame ... grazie 1000 per l'aiuto ... ma possibile che
non ci siano in giro esercizietti da cui trarre spunto ?!?!


tu sembri il principe del quoting
RIPPPPPPPP
Adieu,
-- 
Lestat de Lioncourt                               |          Ciro Mattia Gonano
  JabberID: 
les...@jabber.students.cs.unibo.it
    |    Undergraduate Student in
  ICQ#: 52631406                                  |         Computer Science at
  URL: 
http://www.CS.UniBO.It/~gonano
             |       University of Bologna
            <powered by Linux Slackware 8.1 on Kernel 2.4.18-xfs>
Newsgroup: it.comp.lang.c
Titolo: Memorizzare frasi....

Ciao ragaszzi, sono abbastanza noob con il C e anche con linux...dhooo!
Cmq il mio problemino è il seguente....come faccio a catturare frasi
scritte con la tastiera?
Non stringhe, vorrei scrivere frasi con spazi, newline etc.
Conoscete poi qualche modo per prendere le mie frasi che penso vadano
messe su un buffer, e buttarle sulla memoria condivisa.
Io ho provato a usare delle strutture(struct...)e a fare una lista
concatenata, ma non mi funge...ngheeeeeeeeeee!
Grazie per l'aiuto!!!!!!
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
Prova a postare un estratto del codice che hai usato, magari ti so dire.
Daniele

 concatenata, ma non mi funge...ngheeeeeeeeeee!
Io continuo a non capire perche` vuoi usare una lista concatenata...
Comunque senza codice si fa poco.
-- 
RiK0
[ non credo negli schemi non vincenti ]
[     two is an odd prime number.     ]

Newsgroup: it.comp.lang.c
Titolo: Esercizio K&R

Mi scuso per la domanda un po' banale, ma ho cominciato da poco la
programmazione in c e mi trovo in difficoltà con l'esercizio proprosto dal
libro di K&R. L'esercizio è il numero 1-9 di pag.20. Potete aiutarmi?
GRAZIE.

 ha scritto nel messaggio
news:eMo16.12349$ag5.8...@twister1.tin.it...


 wrote in message 925rfp$9...@news.edisons.net...


...

Newsgroup: it.comp.lang.c
Titolo: Memoria heap Borland C++ 3.1

Ho un grosso problema con un programma realizzato in C++ che alloca in
memoria heap
molti oggetti. L'allocazione avviene utilizzando l'operatore "new".
Il problema e' dovuto al fatto che non ho abbastanza memoria heap e quindi
il programma
si blocca e comunica che non ho piu' memoria heap disponibile (usata la
set_new_handler)
Come posso fare per aumentare la memoria heap ?????? 
Il DOS e' gia' caricato in memoria alta e non posso eliminare i driver che
occupano la 
memoria convenzionale. Ho gia' provato ad usare emm386 ma non riesco a
risolvere il
problema
Grazie a tutti
Mauro Montorio

Soluzione 1: Utilizzi il disco....
Soluzione 2: Utilizzi la memoria estesa....
Soluzione 3: Utilizzi la memoria espansa....
Soluzione 4: Utilizzi gli overlay....
Soluzione 5: Dividi il "programmone" in "programmini" piu' piccoli...
Soluzione 6: Utilizzi un "dos extender"....
.... a te la scelta....
Ciao BR66

Newsgroup: it.comp.lang.c
Titolo: modificare un testo...

Qualcuno sa come fare a modificare il contenuto di un testo aperto con
fopen? in definitiva vorrei sapere se c'č un metodo sempice per cancellare
un tot di byte o caratteri e poi inserirne nuovi al loro posto. Per ora mi
riesce di sovrascrivere ma se la parola nuova č di lunghezza diversa viene
uno schifo...
Grazie...

trini alla frutta wrote:

L'unica alternativa possibile e` utilizzare un file temporaneo da 
sovrascrivere successivamente al file originario.
<code>
	#include <stdio.h>
	#define SRC_FILE ...   /* path of the file to be modified */
	#define TMP_FILE ...   /* path of a temporary file        */
	#define BUFFER_LEN ... /* size of the I/O buffer          */
	int
	main(void)
	{
	  FILE *src,*tmp;
	  char buffer[BUFFER_LEN];
	  if((src=fopen(SRC_FILE,"rt"))==NULL) {
	    perror(SRC_FILE);
	    exit(EXIT_FAILURE);
	  }
	  if((tmp=fopen(TMP_FILE,"wt"))==NULL) {
	    perror(TMP_FILE);
	    exit(EXIT_FAILURE);
	  }
	  while(fgets(buffer,BUFFER_LEN,src)) {
	    /* does something with buffer */
	    fputs(buffer,tmp);
	  }
	  fclose(tmp);
	  fclose(src);
	  rename(TMP_FILE,SRC_FILE);
	  return 0;
	}
</code>
-- 
Baci,
Mony

 sovrascrivere successivamente al file originario.
Ci avevo pensato ma speravo  ci fossero alternative.. in particolare sarebbe
bastata una funzione in grado di cancellare dei byte... pazienza vuol dire
che farò come dici tu
Grazie, anche dei baci :-)
Trini

 che farò come dici tu
Non e' tecnicamente possibile, almeno non con i file-system
comunemente diffusi oggi.  Il file e' generalmente suddiviso
in unita' di memorizzazione di una certa grandezza.
Riuscire a "succhiare" via, da un certo punto a un altro punto
determinati byte, significa creare delle falle che devono
essere gestite.  Se il file e' diviso in questo modo:
chunk A     chunk B     chunk C
[abcde] --> [fghijk]--> [lmn]
e ho voglia di tirare via "cd" e "hi", i chunk si dovrebbero
ritrasformare in:
chunk A     chunk B     chunk C
[abefg] --> [fgjkl] --> [mn]
E, onestamente, mi sembra chiedere troppo al s.o. ;)
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c
Titolo: INPERDIBILE

Strano, hai perso una gambetta della M !
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
---------------------------------------------

Newsgroup: it.comp.lang.c
Titolo: c99 v. c

Ci sono molte differenze tra il c99 e il c "classico", quello di Kernighan e
Ritchie, tanto per capirci ?

Aggiungo un'altra fondamentale domandina: qual è il migliore compilatore per
Win che supporti il C99 ?
Grazie

Ritchie, tanto per capirci ?
Migliorie, qualcuna presa dal C++ (es. uso di specificatore di tipo
per le funzioni "inline"), qualcuna presa dalle librerie della GNU (es
snprintf()) oppure semplicemente nuove features richieste dai
programmatori (es. specificatore di tipo "protected" o possibilita' di
specificare macro con numero di arcomenti variadico).
E' stato postato poco tempo fa' il link a cui reperire 1 draft dello
standard... e' spiegato abbastanza bene quali sono le migliorie.
Mox

Win che supporti il C99 ?
Punti di vista, il preferisco i porting del GCC e in particolare il
MinGW (lo trovi anche assieme al DEV-C). Anche l'LCC-WIN32 non e'
male, ma non e' basato sul GCC.
Ti sconsiglio il Visual C (come compilatore, la IDE invece pare non
sia cosi' male).
Mox :)

>programmatori (es. specificatore di tipo "protected" o possibilita' di
Scusate, lo specificatore di tipo introdotto e' "restrict", non
protected, mi cono confuso con il C++.
Mox :)

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

Ciao un'informazione... vorrei sapere se esiste un sito dove spieghi nei
minimi dettagli le procedure da seguire per utilizzare un debugger (quindi
una sorta di Tutorial )  quale potrebbe essere Visual Studio oppure dev-C++
oppure Lcc per far girare i codici dei programmini in C...
Ciao e grazie in anticipo....


prova a
http://www.remotedebugger.com/


scusa il post precedente era errato il link è
C:\Win\Editor\Hackman\Help\faq.html

 scusa il post precedente era errato il link č


 giovamento in quanti è irraggiungibile..... ciao e grazie lo stesso
che pirla ti ho postato l'indirizzo del mio mirror locale , per la fretta
non me ne sono accorto.
comunque se lo cerchi con google lo trovi

Newsgroup: it.comp.lang.c
Titolo: HeapSort implementazione.

Qualche anima pia potrebbe postarmi la/e funzione/i dell' HEAPSORT
cortesemente in C?!
Ringrazio in anticipo qualsiasi aiuto!
Shaden
P.s.(mi scuso per eventuali cross-posting, ma fino ad ora questo mess. è
stato inviato a soli due gruppi che sembravano senza vita!!)

toh guarda chi si rivede :P
cmq 
ftp://cis.uniroma2.it/simtelnet/msdos/c/hsort.c
Luca

   .~.      xin\@IRCNet (mostly xin\aWAy 24/7 ghgh)
   /V\      Email: NOSPAM!
  // \\     Anemir,Alarik,Marty,Araon,Balimir@ClessidraMUD - CdL -
 /(   )\    ICQ UIN: 63088554
  ^`~'^     "Somewhere inside my childhood witnessed my heart die" -
2Pac
-- 
/"\   
\ /    ASCII Ribbon Campaign
 \     Against HTML Mail and News
/ \  
--
"A coward dies a thousand deaths a soldier dies but once..." - 2Pac

Ahahahahah!
inutile depistarti in rete,eh? :-))
Fatti vivo qualche volta all'univ.! ;-)
Byez
"xinit" <xi...@guru-meditation.jnz> wrote in message
news:Xns93874E9...@195.31.190.132...

Newsgroup: it.comp.lang.c
Titolo: Memoria allocata da un programma

Si puo' conoscere la memoria totale allocata da un programma in
ambiente WIN32?
(non ci sarebbe neanche bisongo di dirlo, ma ho paura di non
rilasciare tutta la memoria che alloco :-( )
Grazie per l'aiuto.
Fabio Forno
=============================================
scia...@inorbit.com
http://members.sektor9.com/sector1/~sciasbat/
=============================================

ambiente WIN32?
Toh, chi si ritrova in questo ng!
Se usi Visual C++ 4 e MFC la memoria allocata con i new viene 'tracciata'
nel senso che se ti scordi di deallocarla ti viene segnalato dal debugger
all'uscita.
-------------------------------------------------------
|        God is real, unless declared as integer      |
-------------------------------------------------------

rilasciare tutta la memoria che alloco :-( )
uno dei compiti del sistema operativo e` quello di liberare tutta la
memoria allocata da un programma quando termina, percio` se utilizzi
(as esempio) una struttura dati che viene allocata all'inizio e
liberata solo alla fine del programma, potresti fare a meno del free
finale, tanto ci pensa l'OS. la cosa non e` vera se continui ad
allocare memoria senza rilasciarla, visto che l'OS la libera solo
quando il tuo programma termina. queste sono cose che fa anche il DOS,
percio` ...
--
[ranger, email: 
ran...@queen.it
]
ICQ# 6585343

all'uscita.
Sapevo delle MFC, ma io mi accontenterei di una system call (ovvero
non ho troppa voglia di usare le MFC...) che mi dia la memoria totale
allocata da un programma (mi basterebbe per trovare eventuali errori:
so esattamente quando la memoria dovrebbe rimanere costante e quando
crescere). 
Se a nessuno viene in mente un'alternativa io avrei pensato di
ridefinirmi malloc e free e tenere una variabile globale con la
memoria allocata.


crescere). 
le MFC offrono un supporto piu' comodo con la classe CMemoryState,
pero' le stesse funzionalita' sono presenti nella libreria standard C,
cerca il capitolo "Debug Routines" oppure la funzione
_CrtMemDifference dovresti trovare tutte le funzioni che permettono di
effettuare un minimo di debug dell'heap e di controllo sulla memoria
allocata.
Gianpaolo Bottin
- Live Long and Prosper -

memoria allocata.
pero` le funzioni di libreria continuano ad usare la vera malloc
(sempre che non ricompili tutto) percio` eventuali strdup possono
andare persi.

Newsgroup: it.comp.lang.c
Titolo: pointer : beginer

sto studiando da poco il
c qualcuno mi puo' spiegare
il perche' dell'uso dei puntatori
es.
Int a,b;
int *p;
a=10;
p=&a;
b=p;
printf("%d\n", b);
non era meglio
b=a?
che vantaggi ci sono ?
grazie

che vantaggi ci sono ?
Nessuno, semmai ci sono degli svantaggi nell'usare i puntatori in
questo caso. Molto probabilmente la fonte da cui stai imparando vuol
farti vedere cosa sono i puntatori e ti ha fatto quell'esempio.
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
-----------------------------------------------------
"There is nothing better for understanding a kangaroo
 than seeing it jump." [D.Grune, C.J.H. Jacobs]

 il perche' dell'uso dei puntatori
Non e' per essere arrogante, chiedo scusa fin da ora, ma leggi il
capitolo sui puntatori e _poi_ poni domande su di essi.
--
 Ciao, Luca.
 Reply to 
luca....@tiscalinet.it

 capitolo sui puntatori e _poi_ poni domande su di essi.
Verissimo.  C'e' anche un *ottimo* tutorial di Ted Jensen
in rete, "A tutorial on pointers and arrays in C", sotto
http://home.netcom.com/~tjensen/ptr/pointers.htm
 .
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

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

Salve
per run time support di un linguaggio come il C, si intende l'insieme 
delle librerie che permettono di effettuare chiamate di sistema?
Inoltre
una funzione come fopen(), effettua essa stessa una call system, o 
chiama prima un' API e quest'ultima la call system?
thx


Il C è definito da uno standard che, oltre alla sintassi del
linguaggio, definisce anche alcuni funzioni essenziali che devono
essere presenti. Una di queste funzioni è la fopen(). Solitamente il
codice di queste funzioni sta in una libreria, e solitamente al loro
interno effettuano delle chiamate di sistema: questo non significa che
sia un obbligo.
Su linux la fopen() è una funzione nella libreria libc, che al suo
interno fa uso della syscall open (principalmente), così come la printf
() fa uso della syscall write. Su tantissime piattaforme (nel mondo
embedded) tutte queste funzioni sono "linkate" staticamente al tuo
codice ed operano direttamente sull'hardware.
Ciao!
Newsgroup: it.comp.lang.c
Titolo: Regular Expression

Vorrei utilizzare le regular expression in C :)
Sul K&R non se ne parla, sul Rational non ho trovato traccia.
Guardando sullo Stroustrup nella standard library del C++ non se ne
trova menzione.
Sotto Solaris e Linux invece ho trovato una libreria (REGEX.H e altre
2).
Ora vorrei sapere quando posso fare affidamento su quella libreria e/o
dove posso trovarne altre implementazioni, magari free.
Ho cercato su google, ma si trovano piu' che altro riferimenti a
Python e perl e ben poco di specifico al C (maledetto linguaggio C:
cercando su google "C" si matchano anche i "c'e'" :P)
Paolo :)

cercando su google "C" si matchano anche i "c'e'" :P)
Maledetto cercatore: cercando "C language" si matcha tanta
bella roba.
-- 
Andrea Laforgia - walkietalkie(at)
libero.it

 bella roba.
LOL
bisogna creare un metacercatore che cerca come cercare nei cercatori...
esiste anche la possibilita' di usare espressioni nella ricerca come -python
snippet regular expression -python -perl (se vuoi aggiungi "C Language")
cmq...
http://www.linuxgazette.com/issue55/misc/tindale/mygrep.c.txt
e anche qui: 
http://sourceforge.net/projects/rec/
Newsgroup: it.comp.lang.c
Titolo: Bufferizzazione Input, parte seconda...

 'The Krazy One' +-- 
---->  "To Reign is Worth Ambition, Though in Hell.
     Better to Reign in Hell Than Serve in Heaven" <---
*** TaRT_Tagline: He who dies with the most toys... is *still* DEAD!

 Potete aiutarmi?
Credo che non ci sia altro da fare che ridurre la dimensione del buffer
(con setvbuf()) a tentativi fino ad una dimensione tale da non causare
visibili ritardi.
EMG

 
Potresi cablare la dimensione del buffer in modo da trovare il giusto
compromesso ma potresti ottenere prestazioni troppo dipendenti dal sistema.
Probabilmente la cosa migliore e' usare un doppio buffer in modo asincrono.
Non ho mai provato a riprodurre file da disco ma suppongo che l'operazione
non sia bloccante, ovvero sia possibile attivare la riproduzione dei
campioni in DMA o qualcosa del genere in modo da poter fare qualcosa
d'altro in contemporanea.
Prima possibilita': Riproduzione asincrona
- Leggi l'intero buffer in un buffer secondario da passare alla routine di
riproduzione
- Attivi la riproduzione in modo asincrono
- Leggi un altro buffer (sempre pari alla dimensione del buffer dello
stream)
- Alla fine della riproduzione del segmento rincominci da capo.
La dimensione del buffer del file potrebbe essere uguale a quella del
buffer di riproduzione. Dovresi riuscire ad ottenere un flusso continuo con
le letture contemporanee alla riproduzione
Seconda possibilita': Lettura asincrona
- Crei due thread (API di Win95)
- il primo thread riproduce
- il secondo thread legge
- i thread sono sincronizzati in modo che il thread di lettura sia sempre
avanti di un segmento (o anche piu' di uno)
Eventualmente potresi usare piu' di due buffer (uno stack di N buffer).
Con questi sistemi potrebbe essere meglio usare buffer piccoli (comunque
c'e' la cache del CD-ROM che si porta avanti)
Potresi anche provare a lavorare in modo sincrono ma forzando sempre il
riempimento del buffer di lettura leggendo sempre sizeof(buffer)+1 bytes ma
in questo caso devi aspettare la fine del riempimento del buffer prima di
incominciare la riproduzione (oltrea gestire il byte in piu). Forse fra
cache e DMA potresi ottenere un risultato soddisfacente anche cosi' (ne
dubito ma e' cosi' semplice che vale la pena provare).


Beh, diciamo che potresti crearti 2 aree di memoria del buffer che
desideri e poi suonare uno o l'altro in modo alternativo.
Ovviamente quando uno e' suonato l'altro puo' essere riempito
in un thread separato.
In questo modo ti garantisci 1 buffer di tempo per ricalibrazioni
varie del cd o altro.
Spero ti piaccia la soluzione spartana ma funziona.
Ciao Manuel.