小编Cra*_*aig的帖子

rsync: - include-from与--exclude - 来自实际差异是什么?

在文档中,它提到这些文件是包含要包含的模式或要排除的模式的列表的文件.然而,这意味着包含物,除了物质匹配模式之外,一切都被认为是排除.例如,包含以下内容的包含文件:

/opt/**.cfg
Run Code Online (Sandbox Code Playgroud)

应该只包含任何名为*.cfg的文件,该文件存在opt于树中名为any 的目录下的任何位置.所以它会匹配以下内容:

/opt/etc/myfile.cfg
/some/dir/opt/myfile.cfg
/notopt/opt/some/other/dir/myfile.cfg
Run Code Online (Sandbox Code Playgroud)

因此,我希望它隐含地排除其他任何东西.但事实并非如此,因为我在逐项输出中看到了这一点:

*deleting   etc/rc.d/init.d/somescript
Run Code Online (Sandbox Code Playgroud)

那么什么是--include-from--exclude-from?它们只是别名--filter-from吗?

unix bash rsync

25
推荐指数
2
解决办法
4万
查看次数

g ++ undefined对`boost :: system :: system_category()'的引用

我已经搜索了这个问题的答案.我正在使用boost 1.48并且该程序非常简单,因为我已将其分解为最简单的形式以解决此问题.

#include <boost/filesystem.hpp>

int main(int argc, char **argv) {
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

从我的Makefile执行的g ++命令如下:

g++ -m32 -Wall -o mapnik-test -L/usr/lib -I/usr/include -I/usr/include/freetype2 -lpthread -lboost_system mapnik-test.cpp
Run Code Online (Sandbox Code Playgroud)

链接期间的完整错误列表如下:

/tmp/ccIbmuee.o: In function `__static_initialization_and_destruction_0(int, int)':
mapnik-test.cpp:(.text+0x49): undefined reference to `boost::system::generic_category()'
mapnik-test.cpp:(.text+0x53): undefined reference to `boost::system::generic_category()'
mapnik-test.cpp:(.text+0x5d): undefined reference to `boost::system::system_category()'
collect2: ld returned 1 exit status
make: *** [mapnik-test] Error 1
Run Code Online (Sandbox Code Playgroud)

我发现很多人都遇到了同样的问题,但在大多数情况下,解决方案是在LDFLAGS中提供boost_system库.从g ++命令行可以看出,我已经指定了这个.我甚至尝试显式链接libboost_system.a库无济于事.我是这个投诉的唯一人吗?

linker boost compiler-errors g++

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

如何从setup.py生成coverage

我有一个setup.py通过常用test_suite: "tests"设置运行测试.从这里获得报道的最佳方式是什么?我想通过覆盖工具运行setup.py,它的覆盖率报告中会包含setup.py吗?

我在我的tests/init .py中有一个load_tests钩子,我认为这是一个启用覆盖的好地方,但即使这样太早了,因为它会在测试之前开始覆盖.然后是setUpClass函数,但这将涉及修改每个单独的测试以包含另一个模块来启动和停止此处的覆盖.这一切看起来都很笨重.

python code-coverage

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

为什么bash errexit在函数调用中的表现不如预期?

在bash手册页中,它指出:

如果管道(可能包含一个简单的命令),
括在括号中的子shell命令,或者作为括号括起来的命令列表的一部分执行的命令之一,则立即退出...

所以我假设一个函数应该被视为括号括起来的命令列表.但是,如果对函数调用应用条件,则errexit不再在函数体内持久存在,并且在返回之前执行整个命令列表.即使您在为该子shell启用了errexit的函数内显式创建子shell,也会执行命令列表中的所有命令.这是一个演示该问题的简单示例:

function a() { b ; c ; d ; e ; }
function ap() { { b ; c ; d ; e ; } ; }
function as() { ( set -e ; b ; c ; d ; e ) ; }
function b() { false ; }
function c() { false ; }
function d() { false ; }
function e() { false ; }
Run Code Online (Sandbox Code Playgroud)
( set -Eex ; a )
+ a …
Run Code Online (Sandbox Code Playgroud)

bash

9
推荐指数
2
解决办法
5700
查看次数

grep在大文件上表现不佳,还有其他选择吗?

我有一个差异,基本上等于额外的唯一线或在文件中移动的线,因此他们的行号已经改变.为了确定什么是真正的新增加,我运行这个小的perl片段来将"已解析"的行与"未解析的"行分开:

perl -n -e'
    /^\-([^\-].*?)\([^,\(]+,\d+,\d+\).*$/ && do { print STDOUT "$1\n"; next; };
    /^\+([^\+].*?)\([^,\(]+,\d+,\d+\).*$/ && do { print STDERR "$1\n"; next; };
' "$delta" 1>resolved 2>unresolved
Run Code Online (Sandbox Code Playgroud)

实际上这很快就完成了工作,将6000多行差异分成两个3000+行文件,删除了对行号和统一差异装饰的任何引用.接下来是grep命令,似乎在100%CPU上运行了将近9分钟(真实):

grep -v -f resolved unresolved
Run Code Online (Sandbox Code Playgroud)

这基本上是从未解析的文件中删除所有已解析的行.9分钟后的输出恰好是9行输出 - 独特的添加或未解析的行.

首先,当我过去使用grep时,它已经相当不错了,那么为什么在这种情况下它会非常慢并且CPU很饿?

其次,是否有更有效的替代方法从一个文件中删除包含在另一个文件中的行?

perl awk grep sed

7
推荐指数
2
解决办法
320
查看次数

如何使用covselect添加排除?

我能够找到的示例建议以下内容进行排除:

covselect --add \!/usr/src/thing/to/exclude
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做,并列出我的内容时,我得到:

BullseyeCoverage Select Regions 8.8.9 Linux-x64 License 9395 
Copyright (c) Bullseye Testing Technology 1990-2013
include folder /usr/src/
include folder /!/usr/src/thing/to/exclude/
Run Code Online (Sandbox Code Playgroud)

bullseye

6
推荐指数
1
解决办法
5082
查看次数

是否有用于获取正在运行的进程的 uid/gid 的系统调用?

我自己的问题的长答案,在谷歌上搜索并没有找到任何有用的东西,是筛选“ps”的来源。但在我这样做之前,有没有人愿意提供懒人的解决方案?:-)

我发现了这个问题:Knowing the process status using procf/<pid>/status 但是,该解决方案似乎不适用于 3.2 内核。这个 pstatus_t 类型在较新的内核中可用吗?如果是这样,这是否意味着较新的内核提供了 /proc//status 的二进制接口?

c linux process

5
推荐指数
1
解决办法
4457
查看次数

如果先决条件是虚假目标,则仅订单先决条件的行为是什么?

我想知道如果它是一个虚假目标,仅订单先决条件是否会失去其仅订单优先级。考虑以下:

%.make: unpack_chroot
    schroot $(CHROOT) make $*

%.copy: | unpack_chroot
    rsync -a input/$*/ $(CHROOT)/input/$*/

unpack_chroot: input/chroot.tar.gz
    mkdir -p $(CHROOT)
    tar -C $(CHROOT) -zxf $<

.PHONY: unpack_chroot
Run Code Online (Sandbox Code Playgroud)

所有 %.make 和 %.copy 目标都是.PHONY. 其中一些目标依赖于复制到 chroot 中的文件,而其他目标则不然。那些确实是用显式依赖关系定义的:

a.make: a.copy
c.make: c.copy
Run Code Online (Sandbox Code Playgroud)

但是,如果unpack_chroot不是仅限订单的先决条件,并且是作为不在同一 make 进程中的另一个 make 目标的先决条件处理的一部分而解包的,unpack_chroot则在 %.copy 运行时将被视为最新的,并且不会重新制作 %。复制; 至少这是我所看到的。目前,unpack_chroot它不是假的,而是被创建的。我想让它变得虚假,但想澄清这种行为。

makefile

5
推荐指数
1
解决办法
1310
查看次数

wget 是否可以选择强制它写入响应,即使它是错误的?

我编写了一个 Bash SOAP 库,它使用 wget 作为 HTTP 服务器的接口。有意避免 curl,因为在使用此库的系统上默认情况下不可用或未安装 curl。

该库的基础是查询 WSDL,确定参数并允许从命令行调用函数/方法,通过一个简单的包装器来设置 SOAP url:

$ ./mysoap.sh MyMethod sKey=1234 bAnotherParameter=False sAnotherParam="Hello"
Run Code Online (Sandbox Code Playgroud)

但是,当 wget 收到 500 响应时,它不会将响应正文写入由-O. 响应包含服务器生成的 SOAP 错误,这对客户端很有用。有没有办法强制 wget 将响应写入输出文档,而不管状态如何?文档似乎不清楚-O发生错误时的功能,所以对我来说,它没有按预期工作。

bash soap wget

5
推荐指数
1
解决办法
1200
查看次数

在构造"新"对象期间发生异常时,堆分配的内存会发生什么?

当一个类在构造期间抛出异常时,分配的内存会发生什么,你将如何处理这样的事情.例如:

std::auto_ptr<ThirdPartyClass> au_tpc;

try
{
    au_tpc.reset(new ThirdPartyClass());
}
catch(...)
{
    // What happened to the memory allocated of 
    // sizeof(ThirdPartyClass) for the new instance?
}
Run Code Online (Sandbox Code Playgroud)

c++ memory

3
推荐指数
1
解决办法
705
查看次数

标签 统计

bash ×3

awk ×1

boost ×1

bullseye ×1

c ×1

c++ ×1

code-coverage ×1

compiler-errors ×1

g++ ×1

grep ×1

linker ×1

linux ×1

makefile ×1

memory ×1

perl ×1

process ×1

python ×1

rsync ×1

sed ×1

soap ×1

unix ×1

wget ×1