小编And*_*ida的帖子

如何在共享内存中的struct内部分配链表c

我在C中的结构中有一个链表,或者我认为.结构是:

//Structure of the domain list
typedef struct domains *domain_list;
    struct domains{
    char *domain;
    domain_list next;
}domains_node;

//Structure of the configuration of the server
typedef struct{
    int n_threads;
    domain_list domain_list;
    char* local_domain;
    char* named_pipe_statistics;
}server_config;
Run Code Online (Sandbox Code Playgroud)

我试图在共享内存中输入它们,我确信结构很好,但我不知道链表是​​否正确(使用全局变量):

//Initialize shared memory
if((config_shmid = shmget(IPC_PRIVATE, sizeof(server_config), IPC_CREAT|0777)) < 0){
    perror("Error in config shmid\n");
    exit(1);
}
if((config = (server_config*)shmat(config_shmid, NULL, 0)) == (server_config *)-1){
    perror("Error in config shmat\n");
    exit(1);
}

if((config_domain_shmid = shmget(IPC_PRIVATE, sizeof(struct domains), IPC_CREAT|0777)) < 0){
    perror("Error in domain_list config shmid\n");
    exit(1); …
Run Code Online (Sandbox Code Playgroud)

c struct allocation linked-list shared-memory

4
推荐指数
1
解决办法
2728
查看次数

从命令行发送信号进行处理

我读到了有关信号的信息,我知道如何从命令行向进程发送信号.做就是了

ps -C executable
Run Code Online (Sandbox Code Playgroud)

知道这个过程的pid,然后

kill -s signal pid(number)
Run Code Online (Sandbox Code Playgroud)

但是,如果可能的话,我想找到一种更具互动性和通用性的方法.

我想从命令行向特定进程发送信号.我不想打印我想要发出信号的过程的PID,而是使用代码了解哪个过程应该发出信号的方式.

除此之外,我想了解kill命令的作用.

  • 是否会扼杀发出信号的过程?
  • 它会杀死它被调用的过程吗?
  • 如果它杀死一个进程意味着它与do类似exit(0),或者在发回信号后进程是否恢复?

linux signals

3
推荐指数
1
解决办法
5752
查看次数

标签 统计

allocation ×1

c ×1

linked-list ×1

linux ×1

shared-memory ×1

signals ×1

struct ×1