gpt4 book ai didi

linux - 进程间读取不正确

转载 作者:太空宇宙 更新时间:2023-11-04 10:47:35 25 4
gpt4 key购买 nike

我正在做一个具有共享内存的客户端/服务器通信系统。我正在与客户端一起编写服务器随后将读取的 PID。问题是当我尝试读取该值时,它只读取最低有效的 8 位。这是一段代码:

 int receive(void* data, void * connection) {
connection_t * c = (connection_t *)connection;

printf("PRINTING: %d \n", *(c->address));


return 0;
}

void notify_server() {
int mem_id = shmget(PUBLIC_KEY, PAGE_SIZE, PERMISSION_FLAGS);
int * address = shmat(mem_id, NULL, 0);
int sem_id = semget(PUBLIC_KEY, 1, PERMISSION_FLAGS);

*address = (pid_t)PRIVATE_KEY;
printf("FROM CLIENT, PRINT MY PID --- %d\n", *address);
}

结构是:

typedef struct {
int id;
char * address;
struct shmid_ds data;
int sem_id;
struct sembuf sb;
} connection_t;

最佳答案

address 字段是一个char:char * address;

当然 *(c->address) 会给出一个 8 位的 char

关于linux - 进程间读取不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32418616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com