struct + pthread_mutex_t
Nikos Mavroyanopoulos
nmav at hellug.gr
Thu Jan 20 08:15:10 EET 2000
On Wed, Jan 19, 2000 at 11:55:57PM +0200, Vasilis Vasaitis wrote:
> > Οταν πάω να κάνω αργότερα initialize το lock σαν:
> > mystruct.lock = PTHREAD_MUTEX_INITIALIZER;
> > βγάζει ο compiler: parse error before {'
> Νίκο, το πρόβλημα εδώ είναι ότι προσπαθείς να κάνεις κάτι που δεν παρέχει
> η γλώσσα. Βλέποντας το pthread.h, οι ορισμοί του pthread_mutex_t και του
> PTHREAD_MUTEX_INITIALIZER είναι οι εξής:
[...]
> Βλέπεις ότι το pthread_mutex_t είναι μία δομή και αντίστοιχα ο
> PTHREAD_MUTEX_INITIALIZER είναι αρχικοποιητής δομής. Σύμφωνα με την ANSI C,
> μπορείς να δώσεις τιμή σε μία δομή με αυτόν τον τρόπο (με τα επιμέρους
> στοιχεία μέσα σε άγκιστρα) μόνο στο σημείο που ορίζεται, και όχι σε
> οποιαδήποτε εντολή ανάθεσης. Όταν πάλι βάζεις το cast, χρησιμοποιείς μία
> επέκταση του gcc που κάνει ακριβώς αυτό· για περισσότερες λεπτομέρειες, δες
> το `info gcc c\ extensions constructors'.
Ευχαριστώ, Τάσσο, Μάρκο και Βασσίλη που απαντήσατε.
Με καλύψατε πλήρως...
Μου είχε μείνει η εντύπωση απο το βιβλίο του Stevens ότι το PTHREAD_MUTEX_INIT...
χρησιμοποιείται για το initialization γενικά. Δυστυχώς ήταν κακή εντύπωση,
αφού μίλαγε μόνο για statically allocated variables.
> --
> \ /_. _o|o _ \ /_. _ _.o_|_o _
> \/(_|_>|||_> \/(_|_>(_|| |_|_>
--
Nikos Mavroyanopoulos
mailto:nmav at hellug.gr
Always remember you're unique - just like everyone else.
--
====================================================================
Gia boithia (h na diagrafhte) e-mail sto majordomo at hellug.gr
Ta archives tis listas einai sto http://lists.hellug.gr/lgu.html
prin steilete kapoia erothsh psakte mipos exei hdh apanththei.
Gia opoiodipote problima stilte e-mail ston owner-linux-greek-users at hellug.gr
====================================================================
More information about the Linux-greek-users
mailing list