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