shm implemented as memfd syscall
cheliequan
2022-12-27 54951dfb930bea890aef14be02236f81b3a19f2e
src/ipc_msg.h
@@ -11,6 +11,8 @@
#define UNIX_DOMAIN "/tmp/UNIX.domain"
#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \
} while (0)
#define MAX_LEN  4096
#define HELLO_MSG "hello_basic"
@@ -26,20 +28,33 @@
  int len;
} memfd_data_st;
int  send_fd(int  fd, memfd_data_st** ppmemfd_data);
struct user_data
{
  int fd;
  unsigned int n_size;
  char line[MAX_LEN];
};
#define READ_THREAD_NUM  2
#define WRITE_THREAD_NUM 2
int proc_memfd(struct user_data* rdata);
int basic_create_ipc_server(char * unix_domain_path);
int  send_fd_sendmsg(int  fd, memfd_data_st** ppmemfd_data);
/**
 * @brief 发送目标文件描述符
 * @param fd      传递信息的 UNIX 域 文件描述符
 * @param fd_to_send   待发送的文件描述符
 */
int  send_fd_args(int  fd, int fd_to_send, pid_t pid, void **ppdata, int len);
int  send_fd_args_sendmsg(int  fd, int fd_to_send, pid_t pid, void **ppdata, int len);
/**
 * @brief 接受文件描述符
 * @param fd 传递信息的 UNIX 域 文件描述符
 */
int recv_fd(int  fd, memfd_data_st** ppmemfd_data);
int recv_fd_recvmsg(int  fd, memfd_data_st** ppmemfd_data);
#ifdef __cplusplus