Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Il nuovo top di gamma vivo punta su un comparto fotografico particolarmente articolato, con un teleobiettivo da 200 megapixel e teleconvertitori esterni capaci di arrivare a 400 mm equivalenti. Lo abbiamo provato a Tenerife, mettendo alla prova fotocamere, prestazioni, autonomia e accessori. Ecco come si è comportato.
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-01-2010, 14:22   #1
Rsk
Senior Member
 
L'Avatar di Rsk
 
Iscritto dal: Dec 2006
Messaggi: 314
[C] Linux, processi e FORK

Ragazzi dovrei realizzare un ciclo che mi crea vari processi, ai quali in seguito attribuirò un lavoro da compiere ma ho un problema..
Realizzando il tutto con un ciclo me ne crea molti e l'array che dovrebbe contenere i pid viene sovrascritto dai vari processi, questo perchè probabilmente il for viene rieseguito da ogni processo che creo.
questo è il codice.
Codice:
for(i=0;i<NUM_PROCESSI;i++)
	{

	   switch(lista[i]=fork())  
	   {

		case -1:

			perror("Errore nell'esecuzione della fork.");

			exit(1);

		case 0:
			lista[i]=getpid();
			//printf(" lista [%d] =  %d",i,lista[i]);
			break;



	   }
	

			

	}
	for(i=0;i<NUM_PROCESSI;i++) printf(" lista [%d] =  %d",i,lista[i]);
Sapete aiutarmi?
__________________
Athlon64 x2 5600 - AsRock ALiveNF5eSata2+ - kingston 2GB ddr2 800 - GeForce 8800gts 320MB
Rsk è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2010, 16:48   #2
GioVesas
Member
 
Iscritto dal: Jun 2004
Città: Pecetto
Messaggi: 73
Se non ricordo male fork ritorna:
-1 in errore
0 per il child
> 0 per il parent.

Quindi io farei cosi:
Quote:
bool bParent=false;

for(i=0;i<NUM_PROCESSI;i++)
{

switch(lista[i]=fork())
{

case -1:

perror("Errore nell'esecuzione della fork.");

exit(1);

case 0:
bParent=false;
break;
default:
bParent=true;
lista[i]=getpid();
//printf(" lista [%d] = %d",i,lista[i]);
break;
}
if ( bParent==false)
goto somewhere; // non molto elegante, sbrigativa come esempio


}
for(i=0;i<NUM_PROCESSI;i++) printf(" lista [%d] = %d",i,lista[i]);
__________________
Gianni
GioVesas è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2010, 17:32   #3
YuYevon
Junior Member
 
Iscritto dal: Jun 2008
Messaggi: 2
Codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <errno.h>

#define	NUM_PROCESSI	10
#define	NOP		;

int main(void)
{
	unsigned int i;
	pid_t pids[NUM_PROCESSI];

	for (i = 0; i < NUM_PROCESSI; i++) {
		switch (pids[i] = fork()) {

			case -1:
				fprintf(stderr, "Errore: %s\n", strerror(errno));
				exit(errno);
			case 0:
				/* fai qualcosa */
				exit(EXIT_SUCCESS);
			default:
				/* fai qualcosa di diverso */
				NOP
		}
	}

	printf("I pid dei processi creati sono:\n");
	for (i = 0; i < NUM_PROCESSI; i++) {
		printf("%d ", pids[i]);
	}

	putchar('\n');

	return EXIT_SUCCESS;
}
YuYevon è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2010, 12:30   #4
Rsk
Senior Member
 
L'Avatar di Rsk
 
Iscritto dal: Dec 2006
Messaggi: 314
Grazie ragazzi.. ma funzionano tutti come il mio.. i processi vengono creati, ma se guardo nel monitor di sistema i processi creati sono più del doppio di quelli richiesti
__________________
Athlon64 x2 5600 - AsRock ALiveNF5eSata2+ - kingston 2GB ddr2 800 - GeForce 8800gts 320MB
Rsk è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
I datacenter non piacciono? OpenAI prova...
Cupra Raval sfida BMW, Volvo e le altre:...
BYD supera per la prima volta le 300.000...
Crisi RAM, spunta un prezzo incredibile ...
Ginux, un nuovo kernel compatibile con L...
Gemini Notebook si aggiorna: arrivano i ...
Svolta per l'emulazione della prima Xbox...
Narwal celebra 10 anni: l'evoluzione tec...
TIM Enterprise acquisisce il 70% di VoiS...
Altro che dicembre, la RTX 5080 da 24 GB...
Quale futuro per Mass Effect? Tutte le i...
Schermi rotti su iPhone Duo: un report s...
Lo stealer VOLTA chiede a Claude, Kimi e...
Intel e Oracle puntano sulle CPU Xeon pe...
Offerte Amazon da urlo: Mac mini M6 a 89...
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: 16:15.


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