⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c.txt

📁 在linux下可以实现内存的共享。 在linux下可以实现内存的共享。
💻 TXT
字号:
建立共享内存 
共享内存大小:64个char 
通过给程序带参数对共享内存进行操作(就是带参数的main函数) 
例如: 程序名 oo 
oo c 建立共享内存 
oo r 显示共享内存内容 
oo w 字符串 将制定字符串写入共享内存 
oo d 删除共享内存 
谁知道谢谢了,回答的好的话提高悬赏.
问题补充:#include <sys/types.h> 
#include <stdio.h> 
#include <sys/ipc.h> 
#include <sys/shm.h> 

int main (int argc,char *argv[]) 
{ 
int shm_id; 
key_t key; 
int size; 
char *shm_addr,*head,*ptr,data[64],*str; 

size=sizeof (char) * 64; 
switch (*argv[1]) 
{ 
case 'c': 
key = ftok("/work/oo",0); 
shm_id = shmget (key,size,IPC_CREAT|0660); 
if (shm_id==-1) 
{ 
return (-1); 
} 
else 
printf ("the shm_id is %d\n",shm_id); 
break; 
case 'r': 


printf ("%s\n",data); 

break; 
case 'w': 

shm_addr = shmat (shm_id,0,0); 
shm_addr = data; 
while(*argv[2]!='\0') 
{ 
*shm_addr = *argv[2]; 
shm_addr++; 
argv[2]++; 
} 

printf("%s\n",data); 
break; 
case 'd': 
shmctl(shm_id,IPC_RMID,0); 
break; 
default : printf("error\n"); 
} 
} 














#include <stdio.h> 
#include <malloc.h> 
#include <string.h> 

char *memory, *b; 

void ShareMemory( char func, char *data ) 
{ 
switch( func ) 
{ 
case 'c': 
memory = ( char * )malloc( sizeof( char ) * 64 ); 
break; 
case 'r': 
printf( "%s", memory ); 
break; 
case 'w': 
strcpy( memory, data ); 
break; 
case 'd': 
free( memory ); 
break; 
default: 
printf("wrong input!"); 
} 
} 

void main(int argc,char **argv) 
{ 
ShareMemory( *argv[1], argv[2] ); 
ShareMemory( *argv[3], argv[4] ); 
ShareMemory( *argv[5], argv[6] ); 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -