在夜间运行期间,进程崩溃
SIGSEGV
错误。
strcpy(str, in_string);
在发送应用程序中
什么会导致这种类型的碰撞?
#pragma once
#include <iostream>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <stdio.h>
class LocalSocket {
public:
LocalSocket()
{
key_t key = ftok("shmfile", 65);
shmid = shmget(key, 1024, 0666 | IPC_CREAT);
str = (char*) shmat(shmid, (void*)0, 0);
}
~LocalSocket()
{
shmdt(str);
shmctl(shmid, IPC_RMID, NULL);
}
int shmid;
char *str;
bool Send(char* in_string)
{
strcpy(str, in_string);
printf("Data written in memory: %s\n", str);
return true;
}
bool Receive(char* out_string)
{
printf("Data read from memory: %s\n", str);
strcpy(out_string, str);
return true;
}
};