Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HPE Discover 2025: tra agenti intelligenti, infrastruttura AI-native e un futuro ibrido
HPE Discover 2025: tra agenti intelligenti, infrastruttura AI-native e un futuro ibrido
Edge9 ha seguito da vicino HPE Discover 2025 con accesso esclusivo a keynote e interviste. Dalla Sphere di Las Vegas, la visione di un’infrastruttura AI-native e agentica. Hybrid cloud, virtualizzazione e quantum tra i temi centrali
Radeon RX 9060 XT, assalto a NVIDIA? Ecco come va la nuova scheda video di AMD
Radeon RX 9060 XT, assalto a NVIDIA? Ecco come va la nuova scheda video di AMD
La Radeon RX 9060 XT si propone come una nuova sfidante nella fascia media, puntando tutto su prestazioni solide in QHD e un prezzo aggressivo. La nuova proposta basata su architettura RDNA 4 rappresenta un'interessante soluzione per la massa in mercato dove i prezzi spesso scoraggiano dall'acquisto.
LG gram Pro 16Z90TP: il notebook grande ma sottile
LG gram Pro 16Z90TP: il notebook grande ma sottile
Schermo OLED da 16 pollici e piattaforma Intel Core Ultra della serie 200: questi gli ingredienti di LG gram Pro 16Z90TP, un notebook leggero e facilmente trasportabile che strizza l'occhio a chi vuole essere sempre produttivo anche lontano dalla scrivania, coniugando prestazioni e autonomia con batteria.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-06-2017, 20:41   #1
andrea2296
Junior Member
 
Iscritto dal: Jun 2017
Messaggi: 4
Pipe vuota

Salve
Ho un problema con questo codice, in particolare con la lettura della pipe. In pratica ho un processo padre e n processi figli. Il padre deve mandare tramite pipe gli indici di una matrice e ciascun figlio deve leggerli. Il padre li manda correttamente, ma facendo un controllo sulla pipe mi risulta vuota.
Sto impazzendo per capire dove sbaglio:
Posto codice:

<code>
/*Creazione Pipe*/
if(pipe(to_chil) == -1) {
perror("pipe");
exit(1); }

if(pipe(operazione) == -1) {
perror("pipe");
exit(1); }
printf("Processo padre: pipe creata\n");




//Esecuzione NProcessi per il prodotto
for(j=0; j<numeroprocessi; j++){
if ((pid[j]=fork()) == 0){



for(k=0;k<noperazioni;k++){
usleep(500);
switch(c=read(to_chil[0],buf,sizeof(buf))){
case -1:
printf("buff=%d %d\n", buf[0],buf[1]);
perror("read");
exit(1);
case 0:
printf("PID:%d pipe empty\n",getpid());
sleep(1);
break;
default:
printf("ho letto: %d %d\n",buf[0],buf[1]);}

}
//close(to_chil[0]);
return(101+i);

}

else{

for(i=0; i<n;i++){
buf[0]=j;
buf[1]=i;
switch(r= write(to_chil[1],buf,sizeof(buf))){
case -1:
printf("buff=%d %d\n", buftest[0], buftest[1]);
perror("write");
exit(1);
case 0:
printf("pipe empty\n");
sleep(1);
break;
default:
printf("ho scritto: %d %d\n",buf[0],buf[1]);


}
usleep(5000000*(1+j));}
}
}
int l;
//Attende che processi terminino
for(l=0;l<numeroprocessi;l++) {
int status;
wait(&status); // Attende termine di un figlio (uno qualunque)
printf("Terminato processo %d\n",WEXITSTATUS(status));}


close(to_chil[1]);
close(operazione[1]);


</code>
andrea2296 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2017, 16:15   #2
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Continui a riproporre la stessa domanda a cui hai già avuto risposta 20 giorni fa
Hai studiato un minimo come funzionano le pipe?

Le pipe non possono essere usate come le stai usando te.
Puoi o usare i socket o creare una pipe dedicata ad ogni client.
tomminno è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HPE Discover 2025: tra agenti intelligenti, infrastruttura AI-native e un futuro ibrido HPE Discover 2025: tra agenti intelligenti, infr...
Radeon RX 9060 XT, assalto a NVIDIA? Ecco come va la nuova scheda video di AMD Radeon RX 9060 XT, assalto a NVIDIA? Ecco come v...
LG gram Pro 16Z90TP: il notebook grande ma sottile LG gram Pro 16Z90TP: il notebook grande ma sotti...
GeForce RTX 5060, due schede alla prova per capire se 8 GB di memoria sono ancora sufficienti GeForce RTX 5060, due schede alla prova per capi...
Samsung Galaxy Tab S10 FE+: un tablet enorme a un prezzo super, ma con qualche limite Samsung Galaxy Tab S10 FE+: un tablet enorme a u...
Trasformare le bottiglie in Tachipirine:...
Fotovoltaico, in arrivo da Fantoni il pi...
HPE riceve il via libera per acquisire J...
Usi gli auricolari Bluetooth? Rischi di ...
Linux in crisi di memoria: troppa VRAM m...
Xbox, la console che conoscete non esist...
Provincia di Treviso, climatizzatori e p...
Chiamate truffa con numeri italiani? Sca...
Google crede nella fusione nucleare: acc...
Apple le ha tenute nascoste: due funzion...
TV TCL in offerta: QLED da 43'' a 85'' i...
La auto elettriche potrebbero pagare il ...
Windows 95 su PlayStation 2: un'impresa ...
Samsung Odyssey G7 32'' 4K, da 649€ a 49...
Niente pedaggio per i camion elettrici f...
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: 04:14.


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