Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Topics - zacx85

Pagine: [1]
1
Programmazione (Gambas 2) / Multiprocesso shell
« il: 15 Febbraio 2010, 15:46:24 »
Ciao a tutti ragazzi,
sono nuovo del forum così come del linguaggio gambas (e quindi 'basic').
Vorrei iniziare con il farvi i miei complimenti per l'ottimo lavoro che state facendo.

Ho già cercato nel forum un post che parli di ciò di cui ho bisogno, ma non ho trovato nulla
di simile.

Io ho la necessità di eseguire simultaneamente più comandi SHELL tenendo traccia del progresso,
magari con il READ di ciascun processo.
Il numero dei comandi che devo eseguire simultaneamente non è fisso, ma dipende dal numero
delle periferiche di memorizzazione collegate al PC.

Per ora il programma funziona egregiamente, nel senso che è in grado di rilevare tutto l'hardware di
memorizzazione dati nel bus USB, formattarlo in ext2 con inode size a 128K, duplicare con dc3dd e
tutte le altre operazioni che deve svolgere, ma vorrei perfezionarlo nel renderlo dinamico, ovvero
creare tanti processi tante quante sono le devices collegate.

Il problema che incontro è che non si può creare un array di processi, quindi non sapendo come
ovviare questo "limite" per ora ho dichiarato 4 processi, 4 timer etc... in quanto per ora sono costretto
ad inserire forzatamente 4 periferiche alla volta. Ecco, io vorrei adattare il codice in modo tale che
io non debba essere costretto ad inserire tassativamente 4 pennette/hard disk alla volta, ma magari 3,
o 7, etc....

Io avrei un'idea, che vi scrivo per cercare di spiegarmi meglio:

Codice: [Seleziona]
DIM timer AS NEW timer
DIM processi AS NER process[]
DIM i AS integer
DIM cmd AD string

'$listaPeriferiche e' una var di tipo NEW String[] globale con l'elenco di tutte le periferiche

FOR i=0 TO $listaPeriferiche.Count
  cmd =  "dd if=/image.img of=/dev/" & $listaPeriferiche[i]
  processi[i] = SHELL cmd FOR READ
NEXT

timer.start

Poi nel timer con un ciclo FOR controllo tutti i processi a che punto sono
Spero di essermi spiegato meglio con quest'ultimo esempio.

Vi ringrazio anticipatamente.

Pagine: [1]