我已经下载并编译了openssl-1.1.0.
我可以加密,并使用相同的exe解密openssl(如这里)
me@ubuntu:~/openssl-1.1.0$ LD_LIBRARY_PATH=. ./apps/openssl aes-256-cbc -a -salt -in file.txt -out file.txt.enc
enter aes-256-cbc encryption password: 123
Verifying - enter aes-256-cbc encryption password:
me@ubuntu:~/openssl-1.1.0$ LD_LIBRARY_PATH=. apps/openssl aes-256-cbc -a -d -in file.txt.enc -out file.txt.dec
enter aes-256-cbc decryption password: 123
Run Code Online (Sandbox Code Playgroud)
这openssl用于:libcrypto.so.1.1, libssl.so.1.1
当我尝试openssl使用我的ubuntu上安装的解密时,它使用:
/lib/x86_64-linux-gnu/libssl.so.1.0.0, /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
我收到一个错误:
me@ubuntu:~/openssl-1.1.0$ openssl aes-256-cbc -a -d -in file.txt.enc -out file.txt.dec2
enter aes-256-cbc decryption password: 123
bad decrypt
140456117421728:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:539:
Run Code Online (Sandbox Code Playgroud)
可能是什么原因导致的 谢谢
我正在使用BOOST TEST,我想知道是否有办法test suite从里面找出test case.我知道我可以test case通过以下方式找到姓名:
boost::unit_test::framework::current_test_case().p_name
有没有办法找出套件名称呢?
我的套房 - 案例结构是:
suite ---> case 1
______|--> case 2
______|--> case 3
谢谢
我想boost::asio::basic_waitable_timer<std::chrono::steady_clock>安全取消.
根据这个答案,这段代码应该做的工作:
timer.get_io_service().post([&]{timer.cancel();})
Run Code Online (Sandbox Code Playgroud)
我担心这对我不起作用.
难道我做错了什么?
这是我的代码:
#include <iostream>
#include "boost/asio.hpp"
#include <chrono>
#include <thread>
#include <random>
boost::asio::io_service io_service;
boost::asio::basic_waitable_timer<std::chrono::steady_clock> timer(io_service);
std::atomic<bool> started;
void handle_timeout(const boost::system::error_code& ec)
{
if (!ec) {
started = true;
std::cerr << "tid: " << std::this_thread::get_id() << ", handle_timeout\n";
timer.expires_from_now(std::chrono::milliseconds(10));
timer.async_wait(&handle_timeout);
} else if (ec == boost::asio::error::operation_aborted) {
std::cerr << "tid: " << std::this_thread::get_id() << ", handle_timeout aborted\n";
} else {
std::cerr << "tid: " << std::this_thread::get_id() << ", handle_timeout another error\n";
} …Run Code Online (Sandbox Code Playgroud) 是否可以在gnuplot中向箭头添加文本?
让我们说我画一个箭头:
set arrow from 0,0 to 1,1 head
plot(x)
Run Code Online (Sandbox Code Playgroud)
是否可以将此箭头附加一些文字?
谢谢
我想创建unordered_map(因为我特别想要一个哈希映射).我想在开头分配它的最大尺寸(根据我的约束).
所以,如果我想分配256个条目,每个条目的大小是1B(只是一个例子.假设1Byte包括Key和Value).然后我的unordered_map键+条目的总大小是256B.我想在分配器中预先分配256B.
然后,当unordered_map将调用allocate()/时deallocate(),allocator将从已分配的内存中给它1B.
typedef boost::unordered::unordered_map<int, MyClass, boost::hash<int>, std::equal_to<MyClass>, ??? > > myMap
它是否存在于BOOST中?或者别的地方?
----编辑----
正如我所看到的(感谢此处的答案) - 我的问题有两个解决方案:
实现一个allocator,持有一个boost::pool<>.这pool是在allocator构造函数中构建的.当allocate()被调用时unordered_map,它实际上调用pool.malloc(),并且当deallocate()调用unordered_map它时,它实际调用pool.free().
使用已经实现的allocator,pool_allocator如下所示:
typedef pool_allocator<std::pair<MyKey, MyClass>, boost::default_user_allocator_new_delete, boost::mutex, 1024 >) MyAllocator;
typedef unordered_map<MyKey, MyClass, hash, eq, MyAllocator> MyUnorderedMap;
秒选项对我来说仍然不清楚,因为:
a.我只能声明一个MyUnorderedMap吗?
湾 我怎样才能申报使用不同的新MyUnorderedMap next_block大小比1024在运行时间?
我是Linux的新手,我的目标是使用tc命令(或其他命令,例如ifconfig或iptables,为“ eth0”或“ lo”创建简单的流量控制),但我认为我不需要它们。
我的内核是2.6.18-238.el5 GNU / Linux,我正在使用redhat。
我的脚本是:
tc qdisc del dev $DEV root
tc qdisc add dev $DEV root handle 1: htb default 10
tc class add dev $DEV parent 1: classid 1:10 htb rate $DNLD
tc filter add dev $DEV parent 1: protocol ip u32 match ip dport $input_port 0xffff flowid 1:10
Run Code Online (Sandbox Code Playgroud)
$ DNLD是带宽限制,$ DEV是eth0或lo,而$ input_port是我要限制的端口。
我在互联网上阅读了很多页面,并且了解到应该这样写,但是这行代码并不限制特定的端口,而是所有端口。
我尝试也使用“运动”,但它也无法正常工作。所以我不明白问题是什么。
另一个奇怪的事情是,带宽限制似乎正在起作用,并且重置行似乎也在起作用,(这是第一行:tc qdisc del dev $ DEV root)
但仍然,我写完之后的输出行是:“ RTNETLINK答案:没有这样的文件或目录”,我不知道为什么以及是否会造成任何损坏。
如果您需要其他任何信息,请告诉我。我很高兴有人能帮助我。谢谢你。
我明白,为了更改发件人姓名,mailx我应该执行以下操作:
mailx -r newmail@mail.com -s "some subject" my@email.com
Run Code Online (Sandbox Code Playgroud)
但当我这样做时,我得到:
mailx: invalid option -- r
Usage: mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] to-addr ...
[-- sendmail-options ...]
mail [-iInNv] -f [name]
mail [-iInNv] [-u user
Run Code Online (Sandbox Code Playgroud)
有谁知道发生了什么?谢谢,
我想Clion使用使用外部makefile创建的可执行文件进行调试。
我看到可以在其中选择另一个可执行文件,Run/Debug Configurations --> Executable但是它会自动运行我CMakeLists不想执行的(因为它失败了)。
我知道Clion当前不支持“使用现有Makefile导入项目”。
有没有办法做到这一点?
我一直在阅读为什么异步 IO 比同步 IO 更好,这是因为在异步 IO 中,你的程序可以继续运行,而在同步 IO 中,你会被阻塞,直到操作完成。
我不明白这句话,因为使用同步IO(例如write())内核将数据写入磁盘 - 它本身不会发生。内核确实需要 CPU 时间才能完成此操作。
因此,在 a-sync IO 中,它也需要它,这可能会导致上下文从我的应用程序切换到内核。所以它并不是真正的阻塞,但是确实需要 cpu 周期来运行这个操作。
同步IO示例:
异步IO的例子:
我有以下问题:
我的代码在visual c ++ 2010中运行良好,但是当我在Linux上编译它时,它会被编译,但有些东西不起作用:
这是我的Vector意见operator>>:
istream& operator>>(istream& in,Vector& x)
{
char a;
in.sync();
a=in.get(); //gets the '['
for(int i=0;i<x._n;i++)
{
in>>x._vector[i];
if ((i+1)!=x._n)
a=in.get(); //gets the ','
}
in>>a; //gets the ']'
return in;
}
Run Code Online (Sandbox Code Playgroud)
_vector点的阵列上Complex号,operator>>该的Complex优良工程.
输入应该如下所示:
[2+3i,9i,1]
Run Code Online (Sandbox Code Playgroud)
当我在visual c ++ 2010上运行此代码时,它可以正常工作,如下所示:
cin>>v; // [1+1i,2]
cin>>u; // [10,5i]
cout<<v<<endl; //prints: [1+i,2]
cout<<u<<endl; //prints: [10,5i]
Run Code Online (Sandbox Code Playgroud)
当我在Linux上运行相同的代码时,在第一个数组之后[1+1i,2]程序结束:
[1+1i,2] //this is the input
[6.105e-317+6.105e-317i,6.105e-317+6.105e-317i]
[6.105e-317+6.105e-317i,6.105e-317+6.105e-317i]
Run Code Online (Sandbox Code Playgroud)
现在我甚至不能写另一个 Vector
顺便说一下:这是我的Vector.h
#ifndef …Run Code Online (Sandbox Code Playgroud) c++ ×6
boost ×3
linux ×3
allocator ×1
boost-asio ×1
boost-test ×1
c ×1
clion ×1
cryptography ×1
debugging ×1
email ×1
encryption ×1
gnuplot ×1
ide ×1
io ×1
libssl ×1
mailx ×1
octave ×1
openssl ×1
sendmail ×1
timer ×1
unit-testing ×1
visual-c++ ×1