Darshan B(deleted)
|
Not able to use lockf, after mapping the memory
|
Darshan B(deleted)
07/21/2020 11:43 PM
post120858
|
Not able to use lockf, after mapping the memory
Hi,
I am trying to use lockf(shm_desc_, F_TLOCK, 0), but I am getting error ENOSYS.
Can anybody help me on this?
My code is simple as below:
```
std::size_t size = sizeof(int64_t);
shm_desc_ = shm_open(name.c_str(), O_CREAT | O_RDWR, 0777);
if (shm_desc_ == -1) {
LogError("Failed to open shared region");
return;
}
if (ftruncate(shm_desc_, size) == -1) {
LogError("Failed to access region");
return;
}
value_ = (int64_t *)mmap(0, size, PROT_READ | PROT_WRITE, MAP_SHARED, shm_desc_, 0);
if (value_ == MAP_FAILED) {
LogError("Failed to map shared region");
close(shm_desc_);
shm_desc_ = -1;
return;
}
if (-1 == lockf(shm_desc_, F_TLOCK, 0)) {
LogError("trylock failed {}", errno);
return;
}
```
|
|
|