📄 c.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 + -