免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1628 | 回复: 4
打印 上一主题 下一主题

[C] 复数cmd不能启动 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-10-25 10:41 |只看该作者 |倒序浏览
我查过目前的firefox等等,用pid的方式控制复数cmd不能同时启动。
但是我测试的时候,遇到了一点问题
    正常的情况,没有问题,打开文件,关闭文件。
    但是,如果改成需,ctrl+c强行推出的时候,生成的pid文件无法自动删除。


前辈们,做个这个么?

谢谢

论坛徽章:
0
2 [报告]
发表于 2012-10-25 17:25 |只看该作者
再问问。给点思路就行了。

论坛徽章:
1
狮子座
日期:2013-09-29 16:47:13
3 [报告]
发表于 2012-10-27 19:45 |只看该作者
不明白什么叫复数 cmd,不过我在 APUE 的 4.15 节上看到:

可以用 unlink() 函数来确保即使是在该程序崩溃时,它所创建的临时文件也不会遗留下来。进程用 open 或 creat 创建一个文件然后立刻调用 unlink。因为该文件仍旧是打开的,所以不会将其内容删除。只有当进程关闭该文件或终止时(在这种情况下,内核会关闭该进程打开的全部文件),该文件的内容才会被删除。

论坛徽章:
0
4 [报告]
发表于 2012-10-28 09:24 |只看该作者
不好意思。没说清楚。


譬如两个session,不能同时跑同样的一个命令。
譬如,show_session命令。

论坛徽章:
0
5 [报告]
发表于 2012-10-28 14:05 |只看该作者
我测试了,不符合要求。


程序一:
  1. #include<stdio.h>
  2. main()
  3. {
  4. short i;
  5. FILE *fp;
  6. fp=fopen("out.txt", "wt");
  7. unlink("out.txt");
  8. for (i=0; i<10; i++) fprintf(fp, "%d\n", i);
  9. while(1)
  10. {
  11.         printf("0\n");
  12. }
  13. fclose(fp);
  14. }
复制代码
程序2
  1. #include <stdio.h>
  2. int main()
  3. {
  4.       
  5. printf ("%d",access("./out.txt",0));


  6. }
复制代码
在程序2中,检查到的文件,还是不存在的状态。

其他兄弟,又什么好的办法么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP