小编v01*_*dya的帖子

git commit的--date参数的格式是什么

我需要覆盖git提交的日期,所有文档都指向--date参数,但是然后留下一个没有线索到适当的格式.我已经尝试了我能想到的每一个排列,并且我得到了"致命:无效的日期格式:"每个人的错误.

git command-line-arguments

66
推荐指数
3
解决办法
2万
查看次数

什么是在多核处理器中改变核心负载和频率的原因

在寻找多核设计的描述后,我不断寻找几个图表,但所有图表看起来都像这样:

多核设计

通过查看i7z命令输出,我知道不同的内核可以以不同的频率运行.

这表明,关于哪个核心将被赋予新进程以及用于改变核心本身频率的决定可以通过操作系统或核心本身的控制块来完成.

我的问题是:什么控制每个核心的频率?是将READY进程与特定核心关联在操作系统上的工作,还是由处理器内的某些东西完成的工作.

operating-system multicore processor

10
推荐指数
1
解决办法
420
查看次数

是否存在对象的"this"的类比,但对于函数?

我已经搜索了引用和一般网络,但我无法找到,如果它存在.

有没有办法在C++中获取指向当前函数的指针?它是如此微不足道,它应该存在.

在完美的世界中,我想找到一种获得std::function当前函数的方法,但即使是旧式指针也可以.

澄清为什么可能需要它:我正在考虑Lambda函数内部的递归,甚至是函数中的一般递归,在将来的版本中,名称更改的可能性很大.

c++ function-pointers this

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

为什么这段代码在使用变量数组大小时不会产生错误?

下面的代码应该生成错误,因为在编译期间编译器无法知道数组大小.

int f;
std::cin >> f;
int c[f];
c[100] = 5;
Run Code Online (Sandbox Code Playgroud)

我正在使用gcc(Ubuntu 4.8.2-19ubuntu1)4.8.2进行编译,它不仅仅是编译,而是以某种方式运行.

怎么会发生?

c++ gcc variable-length-array

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

如何在多线程gtkmm应用程序中对抗"X服务器上的致命IO错误11(资源暂时不可用)"?

我正在尝试编写一个使用C++ 11多线程的gtkmm应用程序.但是,我一直遇到Fatal IO error 11 (Resource temporarily unavailable) on X server错误.

Gtk::Image我的窗户上有几个物体.每个都是自己的Gtk::EventBox,我必须定期更改图像.为此,我创建了一个包含特定块的事件框的类,它有一个删除前一个图像的函数,生成新图像并将其放在那里.

这是一段代码:

while (lock_flag.test_and_set()) {} // std::atomic_flag lock
// ...
std::cerr << 1;
eventBox->foreach(
    [eb = this->eventBox](Gtk::Widget& w)
    {
        eb->Gtk::Container::remove(w);
    }
);
std::cerr << 2;
eventBox->add(*im);
std::cerr << 3;
eventBox->show_all_children();
std::cerr << 4;
// ...
lock_flag.clear();
Run Code Online (Sandbox Code Playgroud)

error 11发生时,一些数字不会打印到std::cerr,但每次出现问题的地方都不同(我最近观察到它在12之后和123之后崩溃).因此我得出结论,在某处使用的资源不是图像,而是图像eventBox.但是在程序初始化之后,它不会在此函数之外的任何地方访问,并且此函数被std::atomic_flag锁定.

问题:这种行为可能是什么原因?我可以确保它不会发生吗?或者我能抓住这个错误并期望从中恢复吗?

编辑:

我试过了

  1. 我试图从使用std::thread改为Glib::Threads::Thread,但无济于事,仍然得到同样的错误.
  2. 读过这篇文章之后我试图添加GDK_SYNCHRONIZE到环境中,这就产生了[xcb] Unknown request in queue …

multithreading gtkmm c++11

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

用Java编写的MIME编码文件

出于学习目的,我想创建MIME类型文件.有没有java api可用于创建文件?我想在这个文件中嵌入pkcs7响应.

Content-Type: multipart/mixed; boundary="=_1_1440399813_23993"
Content-Transfer-Encoding: 8bit

This is a MIME-formatted message.  If you see this text it means that your
E-mail software does not support MIME-formatted messages.

--=_1_1440399813_23993
Content-Disposition: attachment; filename=hello.pdf
Content-Type: application/pdf
Content-Transfer-Encoding: base64

MMDAwMCBuIAowMDAwMDA1MzUwIDAwMDAwIG4g
CnRyYWlsZXIKPDwvU2l6ZSAxNC9Sb290IDEyIDAgUgovSW5mbyAxMyAwIFIKL0lEIFsgPDZCQjND
QzhCOTkyNDMxMkIxMEZDOUI1MjM3NEQzODYyPgo8NkJCM0NDOEI5OTI0MzEyQjEwRkM5QjUyMzc0
RDM4NjI+IF0KL0RvY0NoZWNrc3VtIC9FNUJGNDQ1NENFRUY4RDk0RjNGRDM4NUU5NTFEOERBNAo+
PgpzdGFydHhyZWYKNTUyNQolJUVPRgo=

--=_1_1440399813_23993
Content-Disposition: attachment; filename=hello.pdf.p7s
Content-Type: application/pkcs7-mime
Content-Transfer-Encoding: base64

Lxbtj3FFg7Ss7fxsq/pSBHYBTLlDZ9K1
mmMmCygSi6+JMfbqj/vu50L79qtq3TgfMXh8GIOWqpiIh6c4/U29T6yZIBFktqiS1vRWiONM9OCx
WlrP70y9XePc/L+HyBeuUjFNCnSsxVO1atgYgLI4GdXu2jc1wTonuQVmNbsTtQ2r27SiM9eTkJYW
jrURoe5lBMTQ6rxGZWdB8bnQXjvQhmOqoDmXJ161MZ/jxbTEwHclDuKggOG29nEfZe/ybq25Fyu8
k01tvUXJJ1EanVZQwFVaoqOmR6W1/HGSxB3S7A==

--=_1_1440399813_23993--
Run Code Online (Sandbox Code Playgroud)

是否有任何api可用于创建此类型的文件?我可以为此文件提供任何扩展名吗?我在这方面很新.

java mime

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

读取:ASIO 中的文件结尾。为什么套接字会关闭?

我有这样的示例(*)代码:

std::string protocol = "http";
std::string server = "www.example.com";
std::string path = "/";

asio::io_service service;

asio::ip::tcp::resolver resolver(service);
asio::ip::tcp::resolver::query query(server, protocol);

asio::ip::tcp::socket socket(service);

asio::ip::tcp::resolver::iterator end;
auto it = resolver.resolve(query);
asio::error_code error;
socket.connect(*it, error);
while(error && ++it!=end)
{
    socket.close();
    socket.connect(*it, error);
}

asio::streambuf request;
std::ostream request_stream(&request);

request_stream << "GET " << path << " HTTP/1.0\r\n";
request_stream << "Host: " << server << "\r\n";
request_stream << "Accept: */*\r\n";
request_stream << "Connection: close\r\n\r\n";

asio::streambuf response;
size_t s = asio::read(socket, response);
Run Code Online (Sandbox Code Playgroud)

什么时候asio::read被调用我得到:

terminate …
Run Code Online (Sandbox Code Playgroud)

c++ boost-asio

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

如何在一段时间内没有输出的情况下杀死进程

我编写了一个假设运行很长时间的程序,它将进度输出到stdout,但是,在某些情况下它开始挂起,最简单的方法是重新启动它。

我的问题是:有没有办法做一些事情,只有在特定秒数内没有输出时才会终止进程?

我已经开始思考了,唯一想到的是这样的:

./application > output.log &
tail -f output.log
Run Code Online (Sandbox Code Playgroud)

然后创建脚本,该脚本将查看上次修改的日期和时间output.log并重新启动整个过程。

但它看起来很乏味,如果有一个现有的命令,我不想经历所有这些。

linux

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

如果方法是常量,如何找到向量的中位数?

我创建了一个名为Collect的方法,该方法将一堆值添加到向量中(如下所示)

void Median::Collect(double datum)
{
  myVector.push_back(datum);
}
Run Code Online (Sandbox Code Playgroud)

我需要创建一种方法来计算我在上述方法中的向量中收集的所有值的中位数。函数定义如下

/* Calculates the median of the data (datum) from the Collect method.
 */
 double Median::Calculate() const
{

}
Run Code Online (Sandbox Code Playgroud)

所以我知道我首先需要对向量进行排序才能找到中位数。以下是我的尝试:

    double Median::Calculate() const
  {
    std::sort(myVector.begin(), myVector.end());
    double median;
    if (myVector.size() % 2 == 0)
    {// even
        median = (myVector[myVector.size() / 2 - 1] + myVector[myVector.size() / 2]) / 2;
    }
    else
    {// odd
        median = myVector[myVector.size() / 2];
    }
    return median;
  }
Run Code Online (Sandbox Code Playgroud)

但是我意识到这不是编译的,因为方法是const,所以对向量的值进行排序会改变向量,这在const函数中是不允许的。那么我应该为这种方法做什么?

c++ sorting algorithm const median

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

可以强制执行应用程序中所有文件的静态块吗?

我的目标是让几个类拥有一个在程序开始时运行的代码块.假设一下,可以随心所欲地将类添加到项目中,并且在开头调用静态函数是不切实际的main.

我试图将初始化例程放在这些类的静态块中,它几乎按预期工作,但并不完全.只有在调用该类中的其他内容后才会调用这些块.这可以通过以下代码证明:

Test.java

public class Test
{
    public static void main(String[] args)
    {
        System.out.println("Begin");
        new Another();
    }
}
Run Code Online (Sandbox Code Playgroud)

Another.java

public class Another
{
    static
    {
        System.out.println("Another.static{}");
    }
    public Another()
    {
        System.out.println("Another.Another()");
    }
}
Run Code Online (Sandbox Code Playgroud)

Another2.java

public class Another2
{
    static
    {
        System.out.println("Another2.static{}");
    }
    public Another2()
    {
        System.out.println("Another2.Another2()");
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是:

Begin
Another.static{}
Another.Another()
Run Code Online (Sandbox Code Playgroud)

可以看出,Another2假设根本不存在.

问题是:是否可以"踢"所有类来执行它们的静态块(如果有的话)?

java static-block

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

在 C++11 中使用带有两个声明的 auto 时会发生什么?

假设有一个这样的循环:

\n\n
for(size_t i=0, n=ar.size(); i<n; ++i)\n{\n  // ...\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

是否可以将其重写为:

\n\n
for(auto i=0, n=ar.size(); i<n; ++i)\n{\n  // ...\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

换句话说,这两个变量将i始终n是相同的数据类型。

\n\n

当我尝试这样的事情时:

\n\n
auto i=0, s="";\n
Run Code Online (Sandbox Code Playgroud)\n\n

g++ 4.8.4 生成错误inconsistent deduction for \xe2\x80\x98auto\xe2\x80\x99: \xe2\x80\x98int\xe2\x80\x99 and then \xe2\x80\x98const char*\xe2\x80\x99。但我无法确定它是否只是 g++,或者根据标准实际上需要使用类型推导中的每个值。

\n

c++ auto c++11

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