OJ学习笔记5
来源:互联网 发布:网络销售许可证 编辑:程序博客网 时间:2024/06/10 19:22
OJ项目做完后,我会整理两三个内容,将整个项目的构架和代码,文档,还有学习过程进行整理写出。
最近一直在研究OJ,将代码一句句的过,然后整理自己需要的代码,前半部分的judged文件已经整理
的差不多了,今天开始测试。
测试过程中遇到了下面的一些问题。
-----------2月21日问题记录-------------------------------------------------------------------------------
① 测试过程中需求添加prinft语句,将适当的变量输出查看,同时也可以监控程序的运行过程,对于不会gdb
调试的我来说,这种方法无非是种很直观可靠的方法。
在添加printf语句的时候,观察到在这么三个语句之前的printf都能正确输出,之后的都不能正确输出。这三个
语句就是:
close(0);close(1);close(2);
这三句的意思就是关闭系统的标准输出和输入,关闭错误输出。
具体的意思会整理成文档,在最后统一写出。
之后,我暂时注释掉了这几句话,然后输出变得正常了。
②继续往下测试的时候遇到提示语句:/home/judge/ alread has one judged on it !
字面意思就是:已经有一个judges在/home/judge/目录下工作了。这句话是在源代码中就有的一句话,在代码
中属于错误处理的一部分。我的理解是因为原来的judged还在工作,我利用的原来的judged的整个目录结构,只是
改变了judged这个文件的内容,并没有停止之前的judged。所以,当我的judged文件准备锁定/home/judge/目录时,
发现已经被别人锁住了,所以不能重锁。
之后,通过仔细观察代码,发现代码是通过获取一个文件内容来获取judged的。那个文件就是/home/judge/etc/judge.pid
,查看文件的详细信息后,发现只是一个普通文件(文件的权限和创建者等信息),因为是pid文件,不知道怎么查看
就直接删除了,重新运行我自己整理的那部分代码,运行OK,没有出现原来的那句/home/judge/ alread has one judged on it !
,新的judge.pid文件被我整理的代码重新创建。
然后编译再运行,又出现那个提示,重复上面的步骤,解决。
-----------2月21日问题记录-------------------------------------------------------------------------------
已经解决2月21日的问题了,是因为一直有个judged进程在进行数据库轮询,而我设置的只允许一个进程
去轮询数据库,所以重新编译运行的时候出错。
解决方法是:用ps aux|grep judged命令找到这个进程。查看进程号,然后用kill -9 xxxx,命令杀死这个进程。
之后重新编译运行,就可以了。
-----------4月18日问题记录-------------------------------------------------------------------------------- OJ学习笔记5
- OJ学习笔记1
- OJ学习笔记2
- OJ学习笔记3
- OJ学习笔记4
- 九度OJ学习笔记 题目1023
- 九度OJ学习笔记 题目1054
- 九度OJ学习笔记 题目1096
- 九度OJ学习笔记 题目1186
- 九度OJ学习笔记 题目1070
- 九度OJ学习笔记 题目1156
- 九度OJ学习笔记 题目1126
- 【学习笔记】〖九度OJ〗题目1433:FatMouse
- 【学习笔记】〖九度OJ〗题目1432:叠筐
- 【学习笔记】〖九度OJ〗题目1161:Repeater
- OJ笔记:大数运算
- OJ笔记:复制数组
- OJ其他笔记
- leetcode刷题,总结,记录,备忘331
- C 柔性数组成员
- 计算机网络9--计算机网络性能
- MVP模式在Android开发中的应用
- metaq配置相关之一 :MetaConfig 类分析
- OJ学习笔记5
- 幻方问题简单尝试
- MATLAB与ISE联合仿真的必备流程
- 并查集&poj1182
- 图片循环滚动效果
- Microsoft(R) Developer Studio 已停止工作 解决办法(2)
- UIView
- [Matlab]使用Simulink进行UDP通讯2
- 互联网+,创业者真正准备好了吗?