Zamceni adresare

Jan Kasprzak kas na fi.muni.cz
Pátek Prosinec 4 09:40:58 CET 2009


Jan Kasprzak wrote:
: $ strace perl -MFcntl=:flock -e 'opendir my $fh, "."; flock $fh, LOCK_EX'
: [...]
: open(".", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
: fstat(3, {st_mode=S_IFDIR|S_ISGID|0775, st_size=4096, ...}) = 0
: fcntl(3, F_GETFD)                       = 0x1 (flags FD_CLOEXEC)
: close(3)                                = 0
: exit_group(0)                           = ?
: 
: 	Co delam spatne?

	Hmm, to co vraci opendir() asi neni bezny filehandle
a nevim jak z neho ten filehandle udelat (ani treba fileno() na to
nezabira). Pokud adresar otevru pres sysopen (ani nepotrebuju O_DIRECTORY),
tak to funguje:

$ strace perl -MFcntl=:flock -e 'sysopen my $fh, ".", O_RDONLY; flock $fh, LOCK_EX'
[...]
open(".", O_RDONLY)                     = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffe3cf9e80) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(3, 0, SEEK_CUR)                   = 0
fstat(3, {st_mode=S_IFDIR|0711, st_size=20480, ...}) = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
flock(3, LOCK_EX)                       = 0
close(3)                                = 0
exit_group(0)                           = ?

	(BTW, znate program flock(1)? Docela pekne, a v util-linux-ng-2.16
umi zamykat i adresare.)

-Y.

-- 
| Jan "Yenya" Kasprzak  <kas at {fi.muni.cz - work | yenya.net - private}> |
| GPG: ID 1024/D3498839      Fingerprint 0D99A7FB206605D7 8B35FCDE05B18A5E |
| http://www.fi.muni.cz/~kas/    Journal: http://www.fi.muni.cz/~kas/blog/ |
Please don't top post and in particular don't attach entire digests to your
mail or we'll all soon be using bittorrent to read the list.     --Alan Cox


Další informace o konferenci Perl