如果在带有tmpfs的容器中运行,为什么介子无法确定time_t的大小?

时间:2018-11-13 11:23:31

标签: c docker meson-build

受systemd的meson.build文件启发,我创建了以下文件:

project('test','c')
cc = meson.get_compiler('c')
cc.sizeof('time_t', prefix : '#include <sys/time.h>')

如果我通过docker run --rm -it ubuntu:18.04 bash在容器中运行此程序,并通过apt update && apt install -y meson gcc安装介子,则可以正常工作,返回:

  

检查“ time_t”的大小:8

但是,将标志--tmpfs /tmp添加到docker run,结果是这样的:

  

检查“ time_t”的大小:-1

为什么会这样?介子是否可能在/tmp中创建临时可执行文件?

1 个答案:

答案 0 :(得分:1)

在两个容器中比较了/tmp的安装选项之后,结果非常简单:docker似乎确实默认设置了noexec,这就是为什么您必须显式设置{{1 }}标志:

exec