#include <sys/mman.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
int
main (int argc, char *argv[])
{
pid_t cpid;
int *data = NULL;
int fd;
fd = open ("/dev/zero", O_RDWR);
if (fd < 0) {
perror ("open /dev/zero");
exit(1);
}
data = (void *) mmap (0, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
if (data == MAP_FAILED) {
perror ("mmap");
exit(2);
}
*data = 0;
close (fd);
cpid = fork ();
if (cpid == 0)
{
for (;;)
{
sleep (1);
printf ("Child-0: %d\n", *data);
}
} else if (cpid > 0)
{
cpid = fork ();
if (cpid == 0)
{
for (;;)
{
sleep (1);
(*data)++;
printf ("Child-1: %d\n", *data);
}
} else if (cpid > 0)
{
for (;;)
{
sleep (1);
printf ("Parent-0: %d\n", *data);
}
}
}
munmap (data, 4096);
return 0;
}
关键词标签:进程共享,内存
相关阅读
热门文章 安装红帽子RedHat Linux9.0操作系统教程使用screen管理你的远程会话GNU/Linux安装vmware如何登录linux vps图形界面 Linux远程桌面连
人气排行 Linux下获取CPUID、硬盘序列号与MAC地址linux tc实现ip流量限制dmidecode命令查看内存型号linux下解压rar文件安装红帽子RedHat Linux9.0操作系统教程Ubuntu linux 关机、重启、注销 命令lcx.exe、nc.exe、sc.exe入侵中的使用方法查看linux服务器硬盘IO读写负载
查看所有0条评论>>