glibc + uid ?

Giorgos Keramidas keramida at ceid.upatras.gr
Wed Aug 28 21:27:01 EEST 2002


On 2002-08-28 17:07 +0000,   wrote:
> On Wednesday 28 August 2002 00:52, Giorgos Keramidas wrote:
> > Προφανώς εδώ θα θεωρηθούν signed τα δυο τελευταία arguments, με
> > ό,τι αυτό συνεπάγεται για τιμές που έχουν το sign-bit = 1.
>
> ti periergo sunepagetai auto? (clue me)

Ήμουνα πολύ συνοπτικός και τελικά έκανα μάλλον λογικό λάθος.  Εννοώ
ότι δεν μπορείς να περάσεις μετά unsigned τιμές που έχουν το bit
(όποιο είναι αυτό) που θεωρείται sign για τους ακεραίους γιατί αυτοί
θα θεωρηθούν signed και κατά συνέπεια αρνητικοί αριθμοί.  Στην
συγκεκριμένη περίπτωση είμαστε απλά τυχεροί που η setfown() μετά κάνει
το ακριβώς ανάποδο, αλλά αυτό δεν σημαίνει ότι δεν είναι λάθος να
μετατρέπονται αριθμοί σε signed/unsigned χωρίς να υπάρχει ακριβώς
αυτός ο σκοπός από τον προγραμματιστή για κάποιο λόγο.

Δεν έχω βρεί μηχάνημα ακόμα που να συμβαίνει κάτι τέτοιο, αλλά μπορεί
σε κάποιο μηχάνημα να μην αποθηκεύεται το sign bit μάζι με τα υπόλοιπα
bits ενός αριθμού.  Τότε περνώντας ένα unsigned αριθμό σε ένα signed,
η μετατροπή μπορεί να κάνει ό,τι φανταστείς, εφόσον ο προγραμματιστής
δεν θα το ξέρει και δεν θα έχει κάνει τους απαραίτητους ελέγχους για
να αποφύγει overflo, truncation, κλπ.

-- 
FreeBSD: The Power to Serve -- http://www.FreeBSD.org



More information about the Linux-greek-users mailing list