Torna indietro   Hardware Upgrade Forum > Software > Linux, Unix, OS alternativi

Intervista a Stop Killing Games: distruggere videogiochi è come bruciare la musica di Mozart
Intervista a Stop Killing Games: distruggere videogiochi è come bruciare la musica di Mozart
Mentre Ubisoft vorrebbe chiedere agli utenti, all'occorrenza, di distruggere perfino le copie fisiche dei propri giochi, il movimento Stop Killing Games si sta battendo per preservare quella che l'Unione Europea ha già riconosciuto come una forma d'arte. Abbiamo avuto modo di parlare con Daniel Ondruska, portavoce dell'Iniziativa Europa volta a preservare la conservazione dei videogiochi
Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione
Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione
Abbiamo provato il nuovo Galaxy S25 Edge, uno smartphone unico per il suo spessore di soli 5,8 mm e un peso super piuma. Parliamo di un device che ha pro e contro, ma sicuramente si differenzia dalla massa per la sua portabilità, ma non senza qualche compromesso. Ecco la nostra prova completa.
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto
Pensato per il professionista sempre in movimento, HP Elitebook Ultra G1i 14 abbina una piattaforma Intel Core Ultra 7 ad una costruzione robusta, riuscendo a mantenere un peso contenuto e una facile trasportabilità. Ottime prestazioni per gli ambiti di produttività personale con un'autonomia lontano dalla presa di corrente che permette di lavorare per tutta la giornata
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-11-2003, 18:02   #1
Edde
Senior Member
 
Iscritto dal: Oct 2001
Città: Prov. di Frosinone
Messaggi: 948
Programmare in c con Mandrake

Ciao

Mi consigliate un buon programmino, semplice e potente (stile dev c++ per intenderci) con cui programmare in C?

Nei cd della Mandrake 9.1 c'e' una milionata di programmi, e mi sono un po' perso


Ho provato kDevelop, e sarebbe anche un bel programmino se non ti costringesse a creare dei progetti per ogni cosa: ho fatto un programmino semplice per provare i primi comandi sui processi (1,5 kb), e lui mi ha costretto a creare un progetto di decine di file inutili (1,5 mb)....

Ma e' possibile che non si possa fare altrimenti?
Se volessi scrivere il classico "Hello world" sono per forza costretto a sorbirmi l'ingombrantissimo contorno?

Allora ho provato Kate. Certo, non ha le comodita' di kDevelop (e di Dev c++ ...... ahhhh, che gran bel programma.... possibile che non ci sia l'equivalente su Linux?), ma almeno non mi costringe a fare cose che non voglio. Certo, poi devo compilare con gcc, e non e' il massimo della vita (anche perche' non ho ben capito le varie opzioni che offre).

Un altro paio di domande e chiudo

Sotto win quando compilo il file "pippo.c" mi da "pippo.exe", che e' un eseguibile, e che quindi posso provare semplicemente cliccandoci sopra.
In Linux invece mi da "pippo.o"
Qual'e' il comando per eseguirlo?

Questa invece non riguarda linux, ma il c in generale.
Immaginiamo che il main si trovi nel file "main.c"
In "pippo.c" ci sono delle funzioni che ho scritto io, e che vorrei usare in "main.c"
Per far capire questa cosa al compilatore, cosa devo dirgli?

Grazie
Edde è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2003, 18:17   #2
NA01
Senior Member
 
L'Avatar di NA01
 
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
se non vuoi interfacce in stile visual c++ basta un editor qualunque (da bluefish a gedit, a kedit, a vi, a emacs) ecc...
il .o è un file oggetto, non è un esegubile (gcc dovrebbe dare un .out alla fine).
il .out si lancia con
./nome.out
che linea usi per gcc?
fossi in te non abbandonerei gcc per nulla al mondo!
tenere due finestre aperte non è poi così impossibile, su una scrivi e sull'altra lanci gcc (il comando tra l'altro ti rimane nell'history, lo puoi richiamare con la freccia su).
per c++ devi usare g++ .
se usi emacs puoi anche compilare nella stessa schermata dell'editor.
se vuooi un buon libro che ti spieghi la programmazione c/c++ su linux lo trovi su www.advancedlinuxprogramming.com
sono dei pdf da scaricare.
nei primi capitoli ti spiega anche come usare gcc.

per l'ultima domanda...
non ho capito se vuoi una cosa tipo

#include "pippo.c"

o se intendi la linea di comando da usare

cc -c main.c -o main.o
cc -c pippo.c -o pippo.o
cc main.o pippo.o -o ciao



ciao
NA01 è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2003, 18:37   #3
maxithron
Senior Member
 
L'Avatar di maxithron
 
Iscritto dal: Mar 2002
Città: Italy/Usa
Messaggi: 2817
Oltre agli editor che ti ha suggerito NA01 io aggiungerei anche Quanta:
è ottimo dato che ti consente anche di scegliere l'high-light mode a seconda del codice che devi scrivere(c/c++, php,etc...)

Se invece vuoi un ide meno "inglobante" di kdevelop, puoi utilizzare anjuta.
__________________
"Utilizzando atomi pentavalenti drogheremo il silicio di tipo n;
Utilizzando atomi trivalenti drogheremo il silicio di tipo p;
Utilizzando della cannabis ci drogheremo noi e vedremo il silicio fare cose impossibili" - DSDT-HowTo
maxithron è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2003, 22:20   #4
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9302
guarda che dev-c++ c'è anche per linux, vai sul sito del produttore e vedrai che c'è, ma non so se si può scaricare, altrimenti lo cerchi in rete.
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2003, 22:50   #5
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Editor di testo e linea di comando...niente di meglio per cominciare e capire i meccanismi basilari...
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 06-11-2003, 11:58   #6
Pinocchio
Senior Member
 
L'Avatar di Pinocchio
 
Iscritto dal: Sep 1999
Città: Messina
Messaggi: 1807
Quote:
Originariamente inviato da cn73
Editor di testo e linea di comando...niente di meglio per cominciare e capire i meccanismi basilari...
Già, scusate se mi intrufolo, ma era inutile magari aprire un nuovo 3d.

Posto le mie domande:

1)Sotto Gcc, con quale funzione si pulisce lo schermo e a quale libreria fa riferimento?
2)e per getch() va bene la libreria curses.h o ce ne sono altre?

C i a o.
__________________
with Free Software you have Freedom (Richard Stallman)
Pinocchio è offline   Rispondi citando il messaggio o parte di esso
Old 07-11-2003, 14:59   #7
Edde
Senior Member
 
Iscritto dal: Oct 2001
Città: Prov. di Frosinone
Messaggi: 948
Grazie a tutti

Ho optato per Kate (che ti permette anche di compilare senza dover cambiare applicazione, visto che in finestra ti mette la console), e dopo un periodo di assestamento, comincio a trovarmici discretamente bene
Edde è offline   Rispondi citando il messaggio o parte di esso
Old 07-11-2003, 18:47   #8
Edde
Senior Member
 
Iscritto dal: Oct 2001
Città: Prov. di Frosinone
Messaggi: 948
Ragazzi, ora ho una domanda di quelle difficili
Sto muovendo i primi passi coi semafori, e ho scritto questo programmino: il classico programma del Produttore-Consumatore.

Il processo padre crea due figli e rimane in attesa.

Il primo chiama la funzione "produttore", che manda un msg a video, prende una stringa dalla tastiera, e la copia in un'area di memoria condivisa.

Il secondo invece chiama la funzione "consumatore", che legge la stringa dalla mem condivisa e la stampa a video.

La cosa si ripete (con un ciclo) fino a quando l'utente non inserisce la stringa "quit".

Chiaramente i due processi non possono accedere contemporaneamente alla memoria, e l'esclusione avviene con i semafori.

Dico subito che c'e' un errore: infatti non c'e' niente che impedisca al consumatore di entrare nell'area critica prima del produttore (e la cosa non dovrebbe accadere).
Il padre genera prima il produttore, che quindi in genere riesce ad accedere alla memoria prima dell'altro, ma e' cmq una soluzione scorretta.

Il problema pero' e' un altro:
il consumatore non riesce ad entrare nell'area critica prima della morte del produttore.

Esempio di esecuzione:

>Inserisci il dato ('quit' per uscire):
pippo
>Inserisci il dato ('quit' per uscire):
pluto
>Inserisci il dato ('quit' per uscire):
quit
>quit

Mentre invece dovrebbe essere:

>Inserisci il dato ('quit' per uscire):
pippo
>pippo
>Inserisci il dato ('quit' per uscire):
pluto
>pluto
>Inserisci il dato ('quit' per uscire):
quit
>quit

Ecco il codice:

---------------------------------------- ------------
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/sem.h>
#include <stdio.h>

/* Produttorre-Consumatore con i semafori */

/* Metodi per le operazioni sul semaforo */

int waitSem(int ds_sem)
{
struct sembuf oper;
oper.sem_num = 0;
oper.sem_op = -1;
oper.sem_flg = 0;

return semop(ds_sem, &oper, 1);
}

int signalSem(int ds_sem)
{
struct sembuf oper;
oper.sem_num = 0;
oper.sem_op = +1;
oper.sem_flg = 0;

return semop(ds_sem, &oper, 1);
}


-----
/* Metodo produttore di dati. Chiede il dato e lo memorizza in memoria condivisa */
void produttore(int ds_mem, int ds_sem)
{
void *indirizzo;
int ret;
char dato[256];


/* Attacco la memoria allo spazio di indirizzamento */
indirizzo = shmat(ds_mem, 0, SHM_W);
if( indirizzo == (void*) -1 ) printf("Errore nella shmat del produttore\n");

/* Produco */

do{
ret = waitSem(ds_sem);
if(ret == -1) printf("Errore nella wait del produttore\n");

printf("Inserisci il dato ('quit' per uscire): \n");
scanf("%s", dato);


/* Inizio area critica */
strcpy(indirizzo, dato);
/* Fine area critica */

ret = signalSem(ds_sem);
if(ret == -1) printf("Errore nella signal del produttore\n");


}while( (strcmp(dato, "quit") != 0) );


exit(0);
}

-----
/* Metodo consumatore. Prende il dato dalla memoria condivisa e lo mette a schermo */
void consumatore(int ds_mem, int ds_sem)
{
void *indirizzo;
char dato[256];
int ret;

/* Attacco la memoria allo spazio di indirizzamento */
indirizzo = shmat(ds_mem, 0, SHM_R);
if( indirizzo == (void*) -1 ) printf("Errore nella shmat del consumatore\n");

/* Consumo */

do{
ret = waitSem(ds_sem);
if(ret == -1) printf("Errore nella wait del consumatore\n");
/* Inizio area critica */
strcpy(dato, indirizzo);
/* Fine area critica */

ret = signalSem(ds_sem);
if(ret == -1) printf("Errore nella signal del consumatore\n");

printf("%s\n", dato);
}while( (strcmp(dato, "quit") != 0) );


exit(0);

}


-----
/* Metodo Main */
int main()
{

int ds_shm, ds_sem, ret, status;
long chiave_shm = 30, chiave_sem = 50;

/* Inizializzo il fottuto semaforo */
ds_sem = semget(chiave_sem, 1, IPC_CREAT | 0666);
if(ds_sem == -1) printf("Errore nella creazione del semaforo\n");

ret = semctl(ds_sem, 0, SETVAL, 1);

/*Inizializzo la memoria condivisa*/
ds_shm = shmget(chiave_shm, 256, IPC_CREAT | 0666);
if( ds_shm == -1 ) printf("Errore nella creazione della memoria\n");

/* Facciamo nascere i due figli */
if(fork() != 0)
{
if(fork() != 0)
{
wait(&status);
wait(&status);
}
else consumatore(ds_shm, ds_sem);
}
else produttore(ds_shm, ds_sem);

/* Elimino la memoria condivisa */
ret = shmctl(ds_shm, IPC_RMID, NULL);
if(ret == -1) printf("Errore nella rimozione della memoria\n");

/* Elimino il fottutissimo semaforo */
ret = semctl(ds_sem, 0, IPC_RMID, 1);
if(ret == -1) printf("Errore nella rimozione del semaforo\n");

} /* Fine del main */
---------------------------------------- ------------

Se avete letto fino a qui, grazie
Se poi potete anche aiutarmi, allora alla prima occasione vi offriro' anche da bere

Grazie
Edde è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2003, 14:54   #9
Pinocchio
Senior Member
 
L'Avatar di Pinocchio
 
Iscritto dal: Sep 1999
Città: Messina
Messaggi: 1807
Quote:
Originariamente inviato da Pinocchio
Già, scusate se mi intrufolo, ma era inutile magari aprire un nuovo 3d.

Posto le mie domande:

1)Sotto Gcc, con quale funzione si pulisce lo schermo e a quale libreria fa riferimento?
2)e per getch() va bene la libreria curses.h o ce ne sono altre?

C i a o.
UP
__________________
with Free Software you have Freedom (Richard Stallman)
Pinocchio è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2003, 14:59   #10
NA01
Senior Member
 
L'Avatar di NA01
 
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
non ho ancora letto la parte sui semafori per i processi (sono al cap 4)
se vuoi puoi darci un'occhiata
www.advancedlinuxprogramming.com
credo che tu stia cercando le informazioni del capitolo 5, non essendoci ancora arrivato non ti sò dire altro...
ciao
NA01 è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2003, 17:29   #11
sebyweb
Senior Member
 
Iscritto dal: Jan 2003
Città: catania
Messaggi: 707
scusate, ma come si compila direttamente da emacs?
__________________
Ho trattato con: Ciccillover, Bimbubay, Gianni1482, infrty, juky, yottabyte, magnolia, stranamore, sagomaccio, redsnake, lucafao, beppe, mrmic, brizius78, Oaichehai, evilgem, wistonwolf, pechigno, alphacygni, myk980, pedro80.
sebyweb è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2003, 19:16   #12
NA01
Senior Member
 
L'Avatar di NA01
 
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
una volta salvato vai su tool->compile
ti compare la linea di comando in fondo e puoi lanciare la compilazione

ciao
NA01 è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2003, 19:26   #13
Krakz
Senior Member
 
Iscritto dal: Nov 2002
Messaggi: 173
http://www.scintilla.org/SciTEImage.html

Scite
__________________
powered by Mandrake - You are registered as user #335131 with the Linux Counter
Krakz è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Intervista a Stop Killing Games: distruggere videogiochi è come bruciare la musica di Mozart Intervista a Stop Killing Games: distruggere vid...
Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione Samsung Galaxy S25 Edge: il top di gamma ultraso...
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto HP Elitebook Ultra G1i 14 è il notebook c...
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso Microsoft Surface Pro 12 è il 2 in 1 pi&u...
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet! Recensione REDMAGIC Astra Gaming Tablet: che spe...
Tesla sta per lanciare il Robotaxi nella...
Dead Island 2 arriva su Mac, ma a un pre...
FIA e Formula E rinnovano il matrimonio:...
Windows 11 24H2 approda su nuovi sistemi...
Le restrizioni americane hanno generato ...
Una Mercedes EQS con batterie allo stato...
Il robot Walker S2 della Cina cambia la ...
Cosa vuol dire "vantaggio quantisti...
Retelit punta sulla connettività ...
Novità WhatsApp: promemoria sui m...
AMD: la prossima generazione di schede v...
MediaWorld potrebbe diventare cinese: Ce...
Amazon in delirio da sconti: 22 articoli...
EOLO ha più di 700 mila utenti in...
Una spin-off del MIT ha creato dei super...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 17:17.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v