linux判断路径是否合法,求助大佬们 在Linux环境如何检测目标文件是否已经被执行...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

进程A

int main() {

pid_t p = fork();

if (p < 0) {

perror("create child process error\n");

exit(1);

}

else if (p > 0) {

exit(0);

}

chdir("/home/fbw/linux_experment");

umask(000);

for (int i = 0; i < getdtablesize(); i++)

close(i);

// store pid

int pid_fd = open("pid_test.txt", O_WRONLY | O_CREAT, 0777);

if (pid_fd < 0) {

perror("open file error\n");

exit(1);

}

char buff[5];

int pid = getpid();

snprintf(buff, sizeof(buff), "%d", pid);

write(pid_fd, buff, sizeof(buff));

close(pid_fd);

char buf[1] = { '5' };

int fd = open("trust.txt", O_WRONLY | O_CREAT, 0777);

while (1) {

write(fd, buf, sizeof(buf));

sleep(5);

}

close(fd);

return 0;

}

进程B

int main() {

pid_t pid = fork();

if (pid < 0) {

perror("create error\n");

exit(1);

}

else if (pid > 0) {

exit(0);

}

chdir("/");

umask(000);

for (int i = 0; i < getdtablesize(); i++)

close(i);

while (1) {

int fd = open("/home/fbw/linux_experment/pid_test.txt", O_RDONLY);

if (fd == -1) {

perror("open error");

exit(1);

}

char buff[6];

int len = read(fd, buff, sizeof(buff));

close(fd);

int pidoftest = atoi(buff);

int res = kill(pidoftest, 0);

printf("%d ", pidoftest);

if (res == 0) {

printf("running\n");

}

else {

printf("starting...\n");

system("/home/fbw/linux_experment/daemon/test");

}

sleep(5);

}

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值