小编use*_*717的帖子

Docker CMD的命令行参数

我想将参数传递给docker CMD.例如,如果内容Dockerfile

FROM ubuntu:15.04
CMD ["/bin/bash", "-c", "cat", "$1"]
Run Code Online (Sandbox Code Playgroud)

然后我想运行如下:

docker build -t cat_a_file .
docker run -v `pwd`:/data cat_a_file /data/Dockerfile
Run Code Online (Sandbox Code Playgroud)

我想将内容Dockerfile打印到屏幕上.但相反,Docker认为这/data/Dockerfile是一个应该覆盖的脚本CMD,给出了错误

Error response from daemon: Cannot start container 7cfca4: 
[8] System error: exec: "/data/Dockerfile": permission denied
Run Code Online (Sandbox Code Playgroud)

如何避免这种情况?

docker dockerfile

22
推荐指数
1
解决办法
2万
查看次数

在python3中使用h5py发现密钥

python2.7,我可以分析一个hdf5文件密钥使用

$ python
>>> import h5py
>>> f = h5py.File('example.h5', 'r')
>>> f.keys()
[u'some_key']
Run Code Online (Sandbox Code Playgroud)

然而,在python3.4,我得到了一些不同的东西:

$ python3 -q
>>> import h5py
>>> f = h5py.File('example.h5', 'r')
>>> f.keys()
KeysViewWithLock(<HDF5 file "example.h5" (mode r)>)
Run Code Online (Sandbox Code Playgroud)

是什么KeysViewWithLock,以及如何在Python3中检查我的HDF5密钥?

hdf5 python-2.7 python-3.4

17
推荐指数
1
解决办法
2万
查看次数

哪些标准C++功能可用于查询机器/ OS架构?

用于查询程序运行的硬件或操作系统功能属性的标准C++功能和实用程序是什么?
例如,std::thread::hardware_concurrency()为您提供机器支持的线程数.
但是,如何检测计算机具有多少RAM,或者进程使用了​​多少RAM,或者在某个目录中可以写入多少磁盘空间,或者有多少L2缓存可用?

我更喜欢通过()标准的答案,但TR2或者建议也会很好.

c++ computer-architecture c++11 c++14

16
推荐指数
4
解决办法
1312
查看次数

在没有互斥体的情况下在C++ 11中实现共享整数计数器的最简单方法:

假设我们有以下代码来计算出现事件的次数:

int i=0;
void f() {
   // do stuff  . . .
   if(something_happens) ++i;
}

int main() {
    std::vector<std::thread> threads;
    for(int j = 0; j< std::thread::hardware_concurrency(); ++j) {
        threads.push_back(std::thread(f));
    }

    std::for_each(threads.begin(), threads.end(), std::mem_fn(&std::thread_join));
    std::cout << "i = " << i << '\n';
}
Run Code Online (Sandbox Code Playgroud)

目前看来我的竞争条件很明显.使用C++ 11,什么是(1)消除这种竞争条件的最简单方法,以及(2)最快的方法?,最好不使用互斥锁.谢谢.

更新:使用注释使用原子,我得到了一个工作程序,编译在英特尔编译器,版本13:

#include <iostream>
#include <thread>
#include <vector>
#include <atomic>
#include <algorithm>

std::atomic<unsigned long long> i = 0;

void f(int j) {
    if(j%2==0) {
        ++i;
    }  
}

int main() {
    std::cout << "Atomic i = " …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading c++11 stdatomic

14
推荐指数
1
解决办法
1675
查看次数

谷歌云类比AWS Lambda

谷歌云是否具有与AWS Lambda类似的功能?

特别是我希望通过https事件打开计算资源和计划作业.

我也对任何其他具有类似功能的云托管提供商感兴趣.

amazon-web-services google-cloud-platform aws-lambda

11
推荐指数
1
解决办法
2690
查看次数

存在 pyproject.toml 的 Python 项目版本的单一事实来源

pyproject.toml 规范提供了指定项目版本的能力,例如

[project]
name = "foo"
version = "0.0.1"
Run Code Online (Sandbox Code Playgroud)

然而,它也是一个常见的 Python 习惯用法,可以__version__ = "0.0.1"放入foo/__init__.py以便用户查询。

是否有一种标准方法可以version从 中提取pyproject.toml并将其放入 中foo/__init__.py

python version pyproject.toml

11
推荐指数
1
解决办法
1851
查看次数

Boost构建中断:'<pstage/lib> libboost_system.so.1.58.0'的名称冲突

我正在尝试通过以下方式进行增强源构建:

git clone --recursive https://github.com/boostorg/boost.git
cd boost
./bootstrap
./b2 link=shared threading=multi variant=release --without-mpi
Run Code Online (Sandbox Code Playgroud)

这会出现以下错误消息:

error: Name clash for '<pstage/lib>libboost_system.so.1.58.0'
error: 
error: Tried to build the target twice, with property sets having 
error: these incompabile properties:
error: 
error:     -  none
error:     -  <address-model>64 <architecture>x86
error: 
error: Please make sure to have consistent requirements for these 
error: properties everywhere in your project, especially for install
error: targets.
Run Code Online (Sandbox Code Playgroud)

这发生在developmaster分支上.可以做些什么来解决这个错误?提前致谢.

boost

10
推荐指数
2
解决办法
3873
查看次数

正确的方法将numpy.matrix转换为C双指针

将numpy矩阵作为参数传递给C函数采用双指针的规范方法是什么?

上下文:我numpy用来验证一些C代码 - 我有一个C函数需​​要一个 const double ** const,我ctypes用来调用.soPython.

我试过了:

func.argtypes = ctypeslib.ndpointer(dtype=double, ndim=2, flags="C_CONTIGUOUS")
Run Code Online (Sandbox Code Playgroud)

numpy直接传递矩阵(不起作用),以及

func.argtypes = ctypes.POINTER(ctypes.POINTER(ctypes.c_double))
Run Code Online (Sandbox Code Playgroud)

然后numpy通过各种演员表传递矩阵.Casting导致了Python错误

TypeError: _type_ must have storage info
Run Code Online (Sandbox Code Playgroud)

注意:这个问题在几年前出现在这里,但没有完全成功的解决方案.

c python numpy matrix

9
推荐指数
1
解决办法
1912
查看次数

std :: atomic <int>:x.fetch_add(1)和x ++之间的差异;

有什么区别

extern std::atomic<int> x;
int i = x++;
Run Code Online (Sandbox Code Playgroud)

extern std::atomic<int> x;
int i = x.fetch_add(1);
Run Code Online (Sandbox Code Playgroud)

我觉得第二个版本更安全,但我看不出这两个版本之间的测试有什么不同.

c++ parallel-processing multithreading atomic c++11

8
推荐指数
2
解决办法
3825
查看次数

使用Godbolt进入标准库调用

我想知道各种编译器是如何实现的std::random_device,所以我将其加入了godbolt

不幸的是,它唯一说的是

std::random_device::operator()():
        push    rbp
        mov     rbp, rsp
        sub     rsp, 16
        mov     QWORD PTR [rbp-8], rdi
        mov     rax, QWORD PTR [rbp-8]
        mov     rdi, rax
        call    std::random_device::_M_getval()
        leave
        ret
Run Code Online (Sandbox Code Playgroud)

这不是很有帮助。如何进入_M_getval()通话并检查那里的装配体?

c++ assembly

7
推荐指数
1
解决办法
208
查看次数