当前位置: 技术问答>linux和unix
怎样通过signal在两个程序之间通信?
来源: 互联网 发布时间:2015-01-23
本文导语: 我是想通过这个程序修改一个文件,然后立刻发送信号 通知另一个程序去重新读取这个文件更新数据,望各位 高手指教!最好有c的例子,多谢! | #include #include #include #include #include #i...
我是想通过这个程序修改一个文件,然后立刻发送信号
通知另一个程序去重新读取这个文件更新数据,望各位
高手指教!最好有c的例子,多谢!
通知另一个程序去重新读取这个文件更新数据,望各位
高手指教!最好有c的例子,多谢!
|
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define PERMS S_IRUSR|S_IWUSR
#define MAX_CANON 8
/*
struct sembuf
{
short sem_num; * 使用那一个信号 *
short sem_op; * 进行什么操作 *
short sem_flg; * 操作的标志 *
};
*/
void init_semaphore_struct(struct sembuf *sem,int semnum, int semop,int semflg)
{
/* 初始话信号灯结构 */
sem->sem_num = semnum;
sem->sem_op = semop;
sem->sem_flg = semflg;
}
int del_semaphore(int semid)
{
/* 信号灯并不随程序的结束而被删除,如果我们没删除的话(将1改为0)
可以用ipcs命令查看到信号灯,用ipcrm可以删除信号灯的
*/
#if 1
return semctl(semid,0,IPC_RMID);
#endif
}
int main(int argc,char **argv)
{
char buffer[MAX_CANON],*c;
int i,n;
int semid,semop_ret,status;
pid_t childpid;
struct sembuf semwait,semsignal;
if( (argc!=2) || ((n=atoi(argv[1]))
#include
#include
#include
#include
#include
#include
#include
#include
#define PERMS S_IRUSR|S_IWUSR
#define MAX_CANON 8
/*
struct sembuf
{
short sem_num; * 使用那一个信号 *
short sem_op; * 进行什么操作 *
short sem_flg; * 操作的标志 *
};
*/
void init_semaphore_struct(struct sembuf *sem,int semnum, int semop,int semflg)
{
/* 初始话信号灯结构 */
sem->sem_num = semnum;
sem->sem_op = semop;
sem->sem_flg = semflg;
}
int del_semaphore(int semid)
{
/* 信号灯并不随程序的结束而被删除,如果我们没删除的话(将1改为0)
可以用ipcs命令查看到信号灯,用ipcrm可以删除信号灯的
*/
#if 1
return semctl(semid,0,IPC_RMID);
#endif
}
int main(int argc,char **argv)
{
char buffer[MAX_CANON],*c;
int i,n;
int semid,semop_ret,status;
pid_t childpid;
struct sembuf semwait,semsignal;
if( (argc!=2) || ((n=atoi(argv[1]))