小编nov*_*ice的帖子

.text 部分是否在加载的 ELF 可执行文件之间共享?

例如grep,如果一个程序当前正在运行,而用户执行另一个实例,那么这两个实例是否共享.text它们之间的只读部分以节省内存?主要可执行文本的共享是否与共享库类似?

这种行为是否在 Linux 中表现出来?如果是这样,其他Unices 也这样做吗?

如果这不是在 Linux 中完成的,那么实现通常作为共享库并行运行多个实例的可执行文件是否有任何好处,调用的可执行文件只需调用库中的主函数?

kernel executable elf virtual-memory dynamic-loading

5
推荐指数
1
解决办法
395
查看次数

AF_UNIX:使用recv()接收用sendmsg()发送的消息

sendmsg()函数的函数原型如下:

ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags);
Run Code Online (Sandbox Code Playgroud)

msghdr 结构是这样的:

struct msghdr {
    void         *msg_name;       /* optional address */
    socklen_t     msg_namelen;    /* size of address */
    struct iovec *msg_iov;        /* scatter/gather array */
    size_t        msg_iovlen;     /* # elements in msg_iov */
    void         *msg_control;    /* ancillary data, see below */
    size_t        msg_controllen; /* ancillary data buffer len */
    int           msg_flags;      /* flags on received message */
};
Run Code Online (Sandbox Code Playgroud)

如果我通过 UNIX 域套接字发送一条消息,sendmsg()其中包含辅助数据msg_control(例如带有 SCM_RIGHTS 的文件描述符)和常规消息数据msg_iov,我是否能够msg_iov …

file-descriptors socket unix-sockets

5
推荐指数
0
解决办法
796
查看次数