- 論壇徽章:
- 0
|
GUN/Linux編程指南中的例子,源代碼如下:
/*
* atshm.c - Attaching a shared memory segment
*/
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int shmid; /* Segment ID */
char *shmbuf; /* Address in process */
/* Expect an segment id on the command line */
if (argc != 2) {
puts("USAGE: atshm <identifier>");
exit(EXIT_FAILURE);
}
shmid = atoi(argv[1]);
/* Attach the segment */
if ((shmbuf = shmat(shmid, 0, 0)) < (char *)0) {
perror("shmat");
exit(EXIT_FAILURE);
}
/* Where is it attached? */
printf("segment attached at %p\n", shmbuf);
/* See, we really are attached! */
system("ipcs -m");
/* Detach */
if ((shmdt(shmbuf)) < 0) {
perror("shmdt");
exit(EXIT_FAILURE);
}
puts("segment detached");
/* Yep, we really did detach it */
system("ipcs -m");
exit(EXIT_SUCCESS);
}
編譯:gcc atshm.c -o atshm
執(zhí)行:./atshm 11137就報錯了如圖:
未命名8.jpg (20.47 KB, 下載次數(shù): 9)
下載附件
2012-12-17 22:22 上傳
|
|