Возможно ли использовать fcntl()
внутри функции, отличной от main()
? Разблокируется ли файл после его вызова? Я говорю это, потому что в этом случае fcntl()
и большинство всего остального внутри lockfile()
выходят за пределы области действия, когда функция returns
.fcntl() видимость видимости видимости?
int lockfile(void){
int fd;
const char *path = "path-to-lockfile";
struct flock fl;
fl.l_type = F_WRLCK;
fl.l_whence = SEEK_SET;
fl.l_start = 0;
fl.l_len = 0
fl.l_pid = getpid();
fd = open(path, O_RDWR|O_CREAT);
fcntl(fd, F_SETLKW, &fl);
return fd;
}
Прочтите это и подумайте, что мы поговорим о поведении птиц. –