Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Καλησπέρα, προσπαθώ να φτιάξω μια εφαρμογή η οποία να δημιουργεί νέες διεργασίες (με fork()) και μετά με execl τρέχω ένα άλλο πρόγραμμα το οποίο θέλω να επικοινωνεί συνεχώς με την διεργασία - πατέρα και να ανταλλάζουν δεδομένα. Υπάρχουν πολλές διεργασίες παιδιά και πρέπει η αρχική διεργασία να κρατάει στοιχεία από όλες και να τις τερματίσει όταν χρειαστεί. Η ιδέα είναι να δημιουργήσω 2 pipes για την επικοινωνία κάθε διεργασίας με τη διεργασία-πατέρα, και ίσως με κάποια σήματα να πληρωφορώ την ανάλογη διεργασία να λάβει τα δεδομένα (δεν έχω βρει τρόπο για να το κάνω αυτό). Αρχικό πρόβλημά μου σε όλο αυτό είναι η λειτουργία των pipes, δίνω τους fileDescriptors στο εκτελούμενο πρόγραμμα σαν παράμετρο, έχω κάνει write() από την πατρική διεργασία, αλλά μετά το read() δεν καταφέρνω να περάσω τα δεδομένα. Υπάρχει κάποιος πιο εξοικιωμένος με αυτά να δώσει λίγο φως; Ευχαριστώ πολύ.

Επεξ/σία από lion2486
Δημοσ.

Τελικά αυτό το πρόβλημα το έλυσα, από απροσεξία είχα κάνει close() το ρεύμα εγγραφής και δεν γινόταν σωστά η εγγραφή.

Ένα άλλο ερώτημά μου κατά την υλοποίηση είναι αν γίνεται να γνωρίζει η πατρική διεργασία όταν λαμβάνει ένα σήμα από που προέρχεται...

Δημοσ.

Προφανως θα εχει ενα read/write stream και το child thread θα στελνει μυνηματα στο parent thread. Τι ακριβως θελεις να κανεις;

Δημοσ.

φτιάχνω 2 προγράμματα, όπου το πρώτο θα διαχειρίζεται τα πολλά instances του δεύτερου, ώστε να ολοκληρωθεί μια δουλεια (clawer website). Είχα πρόβλημα με την επικοινωνία μεταξύ τους αλλά τελικά χρησιμοποιώ την poll() για να πέρνω τα δεδομένα όταν υπάρχουν.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...