Νάσος. Δημοσ. 29 Νοεμβρίου 2012 Δημοσ. 29 Νοεμβρίου 2012 Έχω το παρακάτω προβλημα. Εχω εναν int pid; Και θελω να δημιουργησω εναν σημαφορο με την semget(); Και θελω η τιμη που θα επιστρεφει η semget() να ειναι το pid. κανω το εξεις: semget(pid,1,0666|IPC_CREAT); αλλα ποτε η επιστρεφομενη τιμη δεν ειναι το pid. Υπαρχει καποιος τροπος; * pid=getpid() απο διεργασια παιδι. επισης εχω δοκιμασει να δηλωσω το pid σαν key_t. Ευχαριστώ.
defacer Δημοσ. 1 Δεκεμβρίου 2012 Δημοσ. 1 Δεκεμβρίου 2012 Δεν είμαι σίγουρος αν έχεις καταλάβει τι κάνει η semget. Αυτό που ζητάς είναι σα να λες ότι θέλεις η malloc να σου επιστρέψει συγκεκριμένη τιμή: δεν πρόκειται γιατί δεν έχει κανένα νόημα να γίνει κάτι τέτοιο.
ExaByte Δημοσ. 1 Δεκεμβρίου 2012 Δημοσ. 1 Δεκεμβρίου 2012 Έχω το παρακάτω προβλημα. Εχω εναν int pid; Και θελω να δημιουργησω εναν σημαφορο με την semget(); Και θελω η τιμη που θα επιστρεφει η semget() να ειναι το pid. κανω το εξεις: semget(pid,1,0666|IPC_CREAT); αλλα ποτε η επιστρεφομενη τιμη δεν ειναι το pid. Υπαρχει καποιος τροπος; * pid=getpid() απο διεργασια παιδι. επισης εχω δοκιμασει να δηλωσω το pid σαν key_t. Ευχαριστώ. Ο σημαφόρος χρησιμοποιείται για συγχρονισμό processes, προστασία διαμοιραζόμενης μνήμης (π.χ. για να μην γράφουν παράλληλα διεργασίες που δεν πρέπει, κ.λ.π.) Το pid μιας διεργασίας είναι το αναγνωρηστικό της, ώστε να μπορείς να την διαχειρίζεσαι, είναι δηλαδή το "όνομα" της Δεν βλέπω κάποιον λόγο για τον οποίο να θες ο σημαφόρος να επιστρέφει το pid κάποιας διεργασίας, οπότε υποθέτω θα εννοείς κάτι διαφορετικό..
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα