C 语言求思路!!急急急!!

2015-11-18 22:07:09 +08:00
 z742364692
设计一个程序实现对多个源文件读取并且用 gcc 编译运行看是否出错和结果是否正确

求思路,怎么实现对多个文件的读取,如何调用 gcc ,并且链接 php 前台传送文件。

谢谢大神,老师偷懒,其实就是想做一个小程序,然后把所有人的期末作业放到一个文件夹里进行批处理,然后打分。。。。。。

还关照我说,把 php 部分也做了,设计漂亮点

求大神指点思路,周末就要成品,小弟先谢过

万能的v2ex
2938 次点击
所在节点    程序员
21 条回复
LaughingMeMe
2015-11-18 22:11:19 +08:00
这不是 ACM 的测题么- -
Valyrian
2015-11-18 22:11:36 +08:00
execve?
mahone3297
2015-11-18 22:12:11 +08:00
思路:
貌似可以文件上传到 1 个地方,这里用 php ,然后用 gcc 编译到一个地方,然后用 shell 或者 php ( exec 函数),传入你期望的入参,得到返回值,校验程序是否有问题

我觉得,关键点,在于要做好一个沙盒,不然。。。这其实就相当于一个 oj 吧。。。
z742364692
2015-11-18 22:12:47 +08:00
@LaughingMeMe 哦?什么东东,有链接吗,我参考参考,主要是没啥思路,书到用时方恨少
@Valyrian 这是?
z742364692
2015-11-18 22:14:04 +08:00
@mahone3297 后台 c 如何对多个文件依次操作呢(假设这些文件全部传到了一个目录下)?小弟不懂
feuvan
2015-11-18 22:15:03 +08:00
这不是 oj 吗?
php 的话记得配置好 disable_classes disable_functions 们。。
LaughingMeMe
2015-11-18 22:16:15 +08:00
acm.hdu.edu.cn....and other else..?
virusdefender
2015-11-18 22:17:57 +08:00
hustoj php 的 oj

https://github.com/QingdaoU/OnlineJudge python 的 oj
wizardoz
2015-11-18 22:22:16 +08:00
不会帮顶
northisland
2015-11-18 22:24:29 +08:00
多个文件读取,,,顺序读取,还是并行读取?

C 调用 bash ?只知道 popen 这个函数

PHP 是最好的语言
Kirscheis
2015-11-18 22:24:39 +08:00
告诉你们老师去找个现成的开源 OJ 就可以了。
https://github.com/mjnaderi/Sharif-Judge
https://github.com/51isoft/bnuoj
没事造什么轮子。
z742364692
2015-11-18 22:40:09 +08:00
@virusdefender 有没有 c 的,这个做出来,我就直接过了,哈哈
htfy96
2015-11-18 22:44:32 +08:00
@Kirscheis 看了下第一个 OJ 的后端貌似禁 fork 之类的居然是靠强制#define fork error 然后屏蔽#undef 来实现的……这样随便就能绕过去吧……
z742364692
2015-11-18 22:46:54 +08:00
@virusdefender 其实只要知道怎么搞定读多个文件和调用 gcc 问题就解决大半了
@northisland 顺序的
hqs123
2015-11-18 22:50:11 +08:00
这个我用 java 也可以实现.
z742364692
2015-11-18 22:55:05 +08:00
@hqs123 java 不会,学的 c 和汇编
adadada
2015-11-18 23:48:10 +08:00
一定要用 C 吗?批量编译的部分写个脚本应该就可以搞定了吧?
oska874
2015-11-19 00:58:30 +08:00
顺序读入多个文件->调用 shell 分别编译->调用 shell 执行程序->调用 shell 比较结果和答案是否一样
twoconk
2015-11-19 08:22:53 +08:00
楼上好多正解
harry890829
2015-11-19 09:15:35 +08:00
Linux C 应该会用 makefile 把,你文件上传之后,根据文件名,生成一个 makefile ,然后执行 shell 命令,“ make &> XXX ”这个 shell 会把 make 的结果写入到一个文件中,然后你读取这个文件,查看是否有 error ,就可以啦

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/237159

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX