小编wil*_*ilx的帖子

如何拆分字符串并在ant脚本中的for循环中使用它?

我在ant属性中有一个机器ips列表.

<property name="machines" ip="10.10.10.1;10.10.10.2;10.10.10.3"/>
Run Code Online (Sandbox Code Playgroud)

我必须将一个文件复制到所有机器(所有机器都是Windows机器).所以我想拆分这个字符串并在for循环中使用它.在forloop里面我将执行复制命令.

<exec executable="cmd.exe">
<pre>
</pre>
<arg line="/C COPY /Y sample.txt \\${machine_ip}\Shared_folder\sample.txt"/>
<pre>
</pre>
</exec>
Run Code Online (Sandbox Code Playgroud)

现在如何拆分并在循环中使用它?

string ant scripting split for-loop

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

`struct ap_conf_vector_t`的定义在哪里?

struct ap_conf_vector_tApache源代码的定义在哪里?它生成了,在哪里?

c c++ apache

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

streams,stream_bufs,codecvt facets和\n到\ r \n的翻译

\r\r\n转换的C++ IO流的哪一部分?它stream_buf本身还是由codecvtfacet 进行内部到外部编码转换的一部分?

更新1

你们都说它是在streambuf/filebuf中完成的.好.但是这种安排如何处理,例如像UTF-16这样的外部编码?然后似乎必须打开文件ios::binary,禁用翻译.

c++ iostream streambuf codecvt

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

从命令行运行程序时 C++ 错误“失败:语言环境::facet::_S_create_c_locale 名称无效”

我似乎对 C++ 中的语言环境有问题。当我从 Eclipse 中运行我的程序时,一切正常。但是,当我尝试从命令行运行时,我不断收到此错误:

失败:locale::facet::_S_create_c_locale 名称无效

这是触发错误的代码:

// Set up UTF8 file stream
string fileName = "./sz.txt";
wifstream inFileStream;

try {
    setlocale(LC_ALL, "");
    inFileStream.open(fileName.c_str());
    inFileStream.imbue(locale(""));
    if(!inFileStream) {
    return EXIT_FAILURE;
    }
}
catch (const std::exception &exc) {
    wcout << "Error while trying to create UTF8 file stream." << endl;
    std::cerr << exc.what() << endl;
    if( inFileStream.is_open() )
        inFileStream.close();

    return EXIT_FAILURE;
}
Run Code Online (Sandbox Code Playgroud)

“locale”的输出如下:

LANG="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_CTYPE="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_ALL="de_DE.UTF-8"
Run Code Online (Sandbox Code Playgroud)

我还尝试使用“de_DE.UTF-8”作为语言环境字符串而不是“”(实际上应该是这样),但这给了我同样的错误。

奇怪的是,该程序在 Eclipse 中运行时运行良好。我正在使用 g++ 从命令行编译以下版本:

配置:--prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM …

c++ locale g++ utf-8 libstdc++

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

将 Bouncy Castle 的 AsymmetryCipherKeyPair (RSA) 转换为 java.security.KeyPair

我正在尝试自动生成用于 E2E 测试的 CA 和证书。我从 Bouncy Castle 开始,成功生成了 CA 证书和机器证书。但是,现在我需要将 BC' 表示的 RSA 密钥对转换org.bouncycastle.crypto.AsymmetricCipherKeyPairjava.security.KeyPair. 我似乎找不到办法做到这一点。

java encryption bouncycastle jce

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

使用 Oracle Java 8 JRE 172 打开 JCEKS 密钥存储时出现“java.io.IOException: Invalid secret key format”

当我尝试在 Windows 上使用 Oracle Java 8 JRE 172 打开 JCEKS 类型密钥存储时出现以下异常。这适用于早期版本的 JRE:

INFO: ObjectInputFilter REJECTED: null, array length: -1, nRefs: 1, depth: 1, bytes: 70, ex: n/a
[...call stacks omitted to protect the innocent...]
Caused by: java.io.IOException: Invalid secret key format
        at com.sun.crypto.provider.JceKeyStore.engineLoad(JceKeyStore.java:856)
        at java.security.KeyStore.load(Unknown Source)
[...]
Run Code Online (Sandbox Code Playgroud)

这看起来非常像JDK-8202506,但我使用 Java 8 并且我收到null了初始 INFO 消息。

这是同样的问题吗?

在我看来,JDK-8202506问题目前尚未在任何公共 JRE 版本中修复。我对吗?

更新 1

这看起来很相似,他们也没有解决方案:ATLAS-2642

更新 2

出于某种原因,Equinoxcom.sun.crypto.provider.SealedObjectForKeyProtector在升级后看不到该类,即使它在新 JDK 附带的 JRE 中很明显:

BundleClassLoader[foo.bar.baz.crypto].loadClass(com.sun.crypto.provider.SealedObjectForKeyProtector) failed.
java.lang.ClassNotFoundException: com.sun.crypto.provider.SealedObjectForKeyProtector …
Run Code Online (Sandbox Code Playgroud)

java osgi jce equinox jceks

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

Equinox中的LogService和LogReaderService如何工作?

我正在开发一个OSGi Equinox软件包,我想添加一些日志记录,主要是重定向到OSGi控制台,仅用于调试目的.

在放弃使用log4j之后,由于Equinox(LogService和ExtendedLogService)中有几个日志服务,我发现这篇文章描述了如何使用LogService:

OSGi日志服务

所以我提出了一个看起来像这样的Activator:

package org.example.servlet;

import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
import org.osgi.service.log.LogService;
import org.osgi.util.tracker.ServiceTracker;
import org.eclipse.equinox.log.ExtendedLogService;

public class Activator implements BundleActivator {

private static BundleContext context;
private ServiceTracker logServiceTracker;
private LogService logService;

static BundleContext getContext() {
    return context;
}

/*
 * (non-Javadoc)
 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
 */
public void start(BundleContext bundleContext) throws Exception {
    Activator.context = bundleContext;      
    // create a tracker and track the log service
    logServiceTracker = new ServiceTracker(context, LogService.class.getName(), null);
    logServiceTracker.open();

    // grab the service
    logService …
Run Code Online (Sandbox Code Playgroud)

eclipse logging osgi equinox

4
推荐指数
1
解决办法
4865
查看次数

从DllMain()锁定时,Visual Studio 2012中的C++ 11 std :: mutex死锁

我看到一个死锁,std::mutex当互斥锁被锁定时,DllMain()下面是一个最小的DLL测试用例,它为我展示了问题.我的实际代码执行互斥锁定,因为它使用的成员函数在正常函数期间也可以在初始化之外使用.

我认为问题是调度程序在main()线程的调用堆栈和调度程序生成的另一个线程(可能)之间的死锁.死锁似乎在main()实际执行之前发生.

我将不胜感激任何关于如何修复/解决死锁的建议.

简单的DLL:

static void testFunc()
{
    std::mutex mtx;
    mtx.lock();

    mtx.unlock();
}


BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
        testFunc ();
        break;

    case DLL_THREAD_ATTACH:
        testFunc ();
        break;

    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}
Run Code Online (Sandbox Code Playgroud)

在死锁时,进程中有两个线程:

Not Flagged >   6408    0   Main Thread Main Thread msvcr110d.dll!Concurrency::details::SchedulerBase::SchedulerBase    Normal
Not Flagged     7600    0   Worker Thread   ntdll.dll!_TppWaiterpThread@4() ntdll.dll!_NtDelayExecution@8   Normal
Run Code Online (Sandbox Code Playgroud)

这是main()线程的调用堆栈:

    ntdll.dll!_NtWaitForKeyedEvent@16() Unknown …
Run Code Online (Sandbox Code Playgroud)

c++ dll multithreading visual-studio visual-studio-2012

4
推荐指数
1
解决办法
3762
查看次数

如何在C++中禁用转义序列

我使用C++来处理许多文件,我必须在源代码中编写文件名,如下所示: "F:\\somepath\\subpath\\myfile"我想知道是否有办法摆脱键入"\\"以在字符串文字上下文中获取字符'\' ,也就是说,我希望我可以写出"F:\somepath\subpath\myfile"无聊的一个.

c++ escaping path

4
推荐指数
3
解决办法
4267
查看次数

set <T> vs set <T,comparator>(C++ polymorphism)

为什么这个代码

struct ThingComparator
{
    ...
}

static void Blah (set <CString> &things)
{
    ...
}

...

set<CString, ThingComparator>things;
Blah (things);
Run Code Online (Sandbox Code Playgroud)

无法编译时出现以下错误(Visual Studio 2010):

error C2664: 'Blah' : cannot convert parameter 1 from 'std::set<_Kty,_Pr>' to 'std::set<_Kty> &'
Run Code Online (Sandbox Code Playgroud)

我的C++知识显然是有限的,但我希望听到一个小号宣布他的可靠骏马上的多态骑士,但我所能听到的只是一个马屁和一个悲伤的长号:-(

c++ polymorphism stl set

4
推荐指数
1
解决办法
174
查看次数