小编nuo*_*eri的帖子

使用boost :: program_options打印普通和位置参数的帮助

当您使用Boost库时program_options,可以非常轻松地为您的程序打印帮助:

boost::program_options::variables_map options;
boost::program_options::options_description optionsDesc;
boost::program_options::positional_options_description positionalOptionsDesc;
//...
if(options.count("help"))
{
    cerr << optionsDesc << endl;
}
Run Code Online (Sandbox Code Playgroud)

但是,如何将选项添加positional_options_description到帮助消息中?在本教程中,我可以在本节末尾看到这种设置的输出:

http://www.boost.org/doc/libs/1_52_0/doc/html/program_options/tutorial.html#id2607297

该选项input-file打印在帮助中,它是位置.但我看不到代码.是否有内置的方式来打印它,就像options_description你需要手动操作一样?显然这<<不起作用positional_options_description,编译错误是:

error: cannot bind ‘std::ostream {aka std::basic_ostream<char>}’ lvalue to ‘std::basic_ostream<char>&&’
Run Code Online (Sandbox Code Playgroud)

c++ boost command-line-arguments boost-program-options

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

在Perl中原子打开不存在的文件

我想写一个名称在变量中的文件$filename.我不想覆盖它,所以先检查它是否存在,然后打开它:

#stage1
if(-e $filename)
{
    print "file $filename exists, not overwriting\n";
    exit 1;
}

#stage2
open(OUTFILE, ">", $filename) or die $!;
Run Code Online (Sandbox Code Playgroud)

但这不是原子的.从理论上讲,有人可以在stage1和之间创建这个文件stage2.是否有一些open命令的变体将以原子方式执行这两个操作,因此如果文件存在,它将无法打开文件进行写入?

concurrency perl file-io

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

如何列出SolrCloud别名?

在SolrCloud Collections API(https://cwiki.apache.org/confluence/display/solr/Collections+API)中,我们可以使用操作列出集合:

/admin/collections?action=LIST
Run Code Online (Sandbox Code Playgroud)

但是,别名不包含在此列表中.别名也没有相应的命令(我们只能CREATEALIAS或者DELETEALIAS).如何列出别名?

solrcloud

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

java.sql.SQLException的原因“数据库处于自动提交模式”

我在Servlet应用程序中使用sqlite数据库和java.sql类将一些数据批量插入数据库中。连续插入四个不同类型的数据。每个看起来像这样:

PreparedStatement statement = conn
    .prepareStatement("insert or ignore into nodes(name,jid,available,reachable,responsive) values(?,?,?,?,?);");
for (NodeInfo n : nodes)
{
    statement.setString(1, n.name);
    statement.setString(2, n.jid);
    statement.setBoolean(3, n.available);
    statement.setBoolean(4, n.reachable);
    statement.setBoolean(5, n.responsive);
    statement.addBatch();
}

conn.setAutoCommit(false);
statement.executeBatch();
conn.commit();
conn.setAutoCommit(true);
statement.close();
Run Code Online (Sandbox Code Playgroud)

但是有时候我会

java.sql.SQLException: database in auto-commit mode
Run Code Online (Sandbox Code Playgroud)

我在源代码中发现,java.sql.Connectioncommit()数据库处于自动提交模式时调用时会抛出此异常。但是我之前关闭了自动提交功能,我看不到任何与并行执行相关的问题,因为现在应用程序仅打开一次。

您知道如何调试此问题吗?也许还有其他原因导致此错误(因为我刚刚发现,将数据库插入null到非null字段中时,可能会引发未找到或配置不正确的数据库异常)?

java sqlite transactions

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

gnuplot pm3d 得到白线

我用 gnuplot 4.6 版绘制了一个频谱图。我确保它是最新版本:http : //www.gnuplot.info/download.html

Gnuplot 是从 Debian 存储库安装的。

右侧的绘图区域和比例尺包含奇怪的白线。他们似乎将数据分开。在数据密集的绘图区域,它们看起来像方格图案:

http://imageshack.us/a/img822/6219/linese.png

线条在刻度上不太明显,但它们也在那里。秤上只有水平线。

我认为这是显示器色域或其他东西的情况,但线条也会出现在pdf monochrome.

我的代码是:

#!/usr/bin/gnuplot

set term pdf
# set style fill noborder # checked with and without this line
set output "../results1/fft.pdf"
set pm3d map
splot "../results1/fft.dat"
Run Code Online (Sandbox Code Playgroud)

正如您在那里阅读的那样,我尝试使用选项 noborder 但无论是否存在线条都存在。

示例数据可以是:

0 1 3
0 2 3
0 3 4
0 4 2
0 5 2
0 6 3
0 7 4
0 8 3

1 1 3
1 2 2
1 3 4
1 …
Run Code Online (Sandbox Code Playgroud)

gnuplot spectrogram

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

版本5.7.1.HinalnateSearchFinal抱怨ElasticSearch黄色索引状态

我尝试将HibernateSearch从版本升级5.7.0.Alpha1到版本5.7.1.Final,但这是不可能的.运行使用该Final版本编译的应用程序时出现以下错误:

Exception in thread "main" org.hibernate.search.exception.SearchException:
HSEARCH400024: Timed out while waiting for for index
'com.example.app.model.journal' to reach status 'green';
status was still 'yellow' after 10000ms.
Run Code Online (Sandbox Code Playgroud)

索引状态yellow在我的设置中是典型的(我认为).我的整个群集状态是yellow,因为它是ElasticSearch的单机部署(用于测试目的).所以我想阻止HibernateSearch等待green状态并强制它接受它yellow(之前的版本没有这样做).我可以设置一些设置,例如hibernate.cfg.xml吗?

我在开发者论坛上发现了这个问题,但是没有人提到设置名称.

java hibernate-search elasticsearch

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

来自bash脚本的错误状态值

我的bash脚本在curl内部运行命令.我想将HTTP响应代码作为我的脚本的状态返回.

我这样做是这样的:

statusCode=404
if [ $statusCode -ne 200 ]
then
    echo $statusCode
    exit $statusCode
fi
exit 0
Run Code Online (Sandbox Code Playgroud)

状态代码正确回显(404),但状态值($?)是148.我究竟做错了什么?

bash curl http

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