Project Home
Project Home
Trackers
Trackers
Documents
Documents
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - Not able to use lockf, after mapping the memory: (1 Item)
   
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;
  }
```