[devel] 64-bit fcntl
Mikhail Zabaluev
=?iso-8859-1?q?mookid_=CE=C1_sigent=2Eru?=
Пн Окт 16 09:52:46 MSD 2000
Доброе время суток.
Почему fcntl в режиме поддержки 64-битных файловых смещений не хочет
выполнять операцию F_SETLKW (она же F_SETLKW64)? Версия glibc - 2.1.95,
ядра - 2.2.17. Текст тестовой программы приложен.
Интересно, что strace как будто ничего не знает о константе F_SETLKW64:
fcntl(4, 0xe /* F_??? */, 0xbffff800) = -1 EINVAL (Invalid argument)
--
Stay tuned,
MhZ mailto:mookid на sigent.ru
-----------
"If value corrupts then absolute value corrupts absolutely."
----------- следующая часть -----------
#define _FILE_OFFSET_BITS 64
#include <fcntl.h>
#include <stdio.h>
static struct flock lock = {
F_WRLCK,
SEEK_CUR,
0,
0,
0
};
int main() {
int fd;
fd = open("dummy_lockfile", O_WRONLY | O_CREAT, 0644);
if (fd < 0) {
perror("Cannot open dummy_lockfile");
return 1;
}
if (fcntl(fd, F_SETLKW, &lock) < 0) {
perror("F_SETLKW failed");
return 2;
}
return 0;
}
Подробная информация о списке рассылки Devel