定义文件大小的上限

时间:2013-05-13 15:01:53

标签: java filesize

我正在开发一个基于Web的编译器。为此,我需要保存必须传递给文件中的源代码的输入,然后将生成的输出保存在文件中。我想限制输出的文件大小文件到最大值。 这是代码片段:

BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(dir + "/run.sh")));
            out.write("cd \"" + dir +"\"\n");
            out.write("chroot .\n");
            out.write("./a.out < in.txt > out.txt");
            out.close();

如何定义文件大小的上限?

1 个答案:

答案 0 :(得分:0)

一种可能性是使用ulimit -f来限制文件输出总量。

另一种可能性是通过dd bs=1 count=NNNNNN

管道输出

顺便说一句,您不需要以这种方式运行shell脚本。你可以这样做:

exec(new String[]{
     "/bin/sh", "-c", 
     "cd \"" + dir + "\" ; chroot . ; ./a.out < in.txt > out.txt"
});

但这并未解决“注入”安全问题。你真的,真的 需要来解决这个问题!