My question is: what's the best way to implement mutual exclusion for a shared memory segment. I want to ensure that while updating a shared memory segment that another process will not get read part of the segment before and the other part after the update. (I also want to ensure that the update itself is not clobbered by another update.)
My update looks something like this:
My reader code looks like this:
Is there any facility to filter/identify the data calls and voice calls coming throug modem?
OR
Can we get the data or voice calls information through a script(preferably C Kermit)? (0 Replies)
Hi,
I'm new to UNIX system calls. Can someone share your knowledge as to how exactly system calls should be executed?
Can they be typed like commands such as mkdir on the terminal itself? Also, are there any websites which will show me an example of the output to expect when a system call like... (1 Reply)
hi, i'm a noob
i have a quuestion: is possible to call and run the bash script by c++ program?
if so, is it posible in grafic? specially Qt ?
thanks (8 Replies)
Hello,
how would i be able to call ps in C programming?
thanks,
---------- Post updated at 01:39 AM ---------- Previous update was at 01:31 AM ----------
here's the complete system call, ps -o pid -p %d, getpit() (2 Replies)
Hello,
I wonder if anybody could help. I'm running SCO Xenix under Qemu on Xubuntu 16.04. I created a SYSV floppy image, but the files on it are poorly displayed when I mounted it under Xenix.
I tried to create and format this image under Ubuntu as well as under Xenix.
How could I create a... (6 Replies)
Discussion started by: Neelix
6 Replies
LEARN ABOUT FREEBSD
shmat
SHMAT(2) BSD System Calls Manual SHMAT(2)NAME
shmat, shmdt -- attach or detach shared memory
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
void *
shmat(int shmid, const void *addr, int flag);
int
shmdt(const void *addr);
DESCRIPTION
The shmat() system call attaches the shared memory segment identified by shmid to the calling process's address space. The address where the
segment is attached is determined as follows:
o If addr is 0, the segment is attached at an address selected by the kernel.
o If addr is nonzero and SHM_RND is not specified in flag, the segment is attached the specified address.
o If addr is specified and SHM_RND is specified, addr is rounded down to the nearest multiple of SHMLBA.
The shmdt() system call detaches the shared memory segment at the address specified by addr from the calling process's address space.
RETURN VALUES
Upon success, shmat() returns the address where the segment is attached; otherwise, -1 is returned and errno is set to indicate the error.
The shmdt() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate
the error.
ERRORS
The shmat() system call will fail if:
[EINVAL] No shared memory segment was found corresponding to shmid.
[EINVAL] The addr argument was not an acceptable address.
The shmdt() system call will fail if:
[EINVAL] The addr argument does not point to a shared memory segment.
SEE ALSO shmctl(2), shmget(2)BSD August 2, 1995 BSD