进程、网络通信方法
一、进程间通信(IPC)方法
适用于同一台主机上的进程间数据交换。
-
管道(Pipe)
-
匿名管道:单向通信,仅用于父子进程。
-
命名管道(FIFO):通过文件系统路径访问,支持无亲缘关系进程。
-
-
消息队列(Message Queue)
- 结构化消息(类型+数据),按类型读取,支持异步通信。
- POSIX标准:mq_open(), mq_send(), mq_receive()
- System V:msgget(), msgsnd(), msgrcv()
-
共享内存(Shared Memory)
- 最高效的IPC:进程直接读写同一块内存。
- 需同步机制(如信号量)避免冲突。
- POSIX:shm_open(), mmap()
- System V:shmget(), shmat()
-
信号量(Semaphore)
- 用于进程同步(如共享资源互斥访问),不传递数据。
- POSIX:sem_open(), sem_wait(), sem_post()