[unix-ws] fcntl unter Solaris8
Martin Olschewski
olschewski at zpr.uni-koeln.de
Mit Dez 11 13:52:46 CET 2002
Hallo,
seit dem Einspielen der letzten recommended Patches auf meine
Sparc/Solaris 8 Maschinen bleiben dort alle Prozesse hängen,
die versuchen mit fcntl einen Lock zu setzen. Beispiel:
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
int main(void) {
char fname[] = "fcntl.c"; /* lock own source */
int fd;
struct flock lock;
if ((fd = open(fname, O_RDWR)) < 0) {
perror(fname);
return EXIT_FAILURE;
}
lock.l_type = F_WRLCK;
lock.l_whence = SEEK_SET;
lock.l_start = 0;
lock.l_len = 4;
printf("locking %s...\n", fname);
if (fcntl(fd, F_SETLK, &lock) == -1) {
perror(fname);
return EXIT_FAILURE;
}
printf("press <return> to unlock %s.\n", fname);
getchar();
lock.l_type = F_UNLCK;
printf("unlocking %s...\n", fname);
if (fcntl(fd, F_SETLK, &lock) == -1) {
perror(fname);
return EXIT_FAILURE;
}
printf("press <return> to continue.\n");
getchar();
close(fd);
return EXIT_SUCCESS;
}
Dieses billige Testprogramm bleibt jetzt schon hinter der
"locking fcntl.c..."-Zeile hängen und läßt sich nur noch durch eine
Kombination von ^C und kill -9 abbrechen.
Hat noch jemand dieses Problem?
Gibt es schon einen neuen Patch?
Bin ich nur zu blöd, oder muß
ich jemand anderen dafür treten?
Fragen über Fragen, für Antworten bin ich dankbar,
Martin Olschewski
--
Dipl.-Inform. Martin Olschewski Center for Applied Computer Science
Email: olschewski at zpr.uni-koeln.de University of Cologne
Tel.: ++49/221/470-6018 Weyertal 80
Fax.: ++49/221/470-5160 D-50931 K\"oln