草庐IT

pthread_key_t

全部标签

c++ - set::key_comp 与 C++ 中的 set::value_comp?

在C++中,set::key_comp与set::value_comp有什么区别?转到cplusplus.com页面没有显着差异。此外在set::key_comp和相关的set::value_comp页面上最后一句是“(...)key_comp和它的兄弟成员函数value_comp是等价的。”例子几乎一样:http://www.cplusplus.com/reference/set/set/key_comp/http://www.cplusplus.com/reference/set/set/value_comp/ 最佳答案 key

c++ - Cpp - 检查 key 是否存在于 boost bimap 中

我有一张双图。我想检查key是否存在于我的bimap中。我怎样才能做到这一点。这是我的双图:namespacebimap{structName{};structID{};typedefboost::bimaps::bimap>,boost::bimaps::set_of>>name_index_bimap;}我想检查“名称”是否存在。 最佳答案 这在thisexample中解释得很清楚。.在您的情况下,它应该如下所示:name_index_mapyour_map;name_index_map::right_const_iterato

C++ : fork/exec or pthread?

我正在编写一个程序,一旦按下一个按钮,我就必须执行一个服务器进程(只有当我决定杀死他时才会停止)。为了执行这个过程,我决定使用fork/execv机制:voidCommand::RunServer(){pid=fork();if(pid==0){chdir("./bin");charstr[10];sprintf(str,"%d",port);char*argv[]={"./Server",str};execv("./Server",argv);}else{config->pid=pid;return;}}在“按下按钮”方法中,我这样做:command->RunServer();几天前

c++ - 如果我不关心返回值,是否需要 pthread_exit

如果我不关心线程的返回状态,是否需要pthread_exit?我想知道是否可能存在与在我的数据化pthread中不调用pthread_exit相关的一些微妙的资源问题。谢谢。 最佳答案 pthread_exit()的目的是在任何其他线程加入时返回退出代码。来自manual:Performingareturnfromthestartfunctionofanythreadotherthanthemainthreadresultsinanimplicitcalltopthread_exit(),usingthefunction'sretu

MySQL 1071 - Specified key was too long; max key length is 1000 bytes解决方案

1071-Specifiedkeywastoolong;maxkeylengthis1000bytes解决方案在设计数据库表时,主键设计varchar长度为255,点击保存表,数据库报错如下图所示原因:在UTF-8MB4字符集下,每个字符通常需要4字节来存储。因此,如果你在VARCHAR(255)字段上使用UTF-8MB4字符集,它的最大存储长度将是255*4=1020字节,这已经超过MySQL的默认主键长度限制(1000字节)。在这种情况下,如果你尝试将VARCHAR(255)列作为主键并使用UTF-8MB4字符集,你可能会遇到“1071-Specifiedkeywastoolong;max

c++ - 使 std::map key const 有意义吗?

这个问题在这里已经有了答案:Whatisdifferencebetweenconstandnonconstkey?(7个答案)关闭9年前。定义std::map时,将键类型设置为const是否有意义?

c++ - GNU pth 与 pthread

我想用C++构建一个可移植且高效的服务器;它会有很多客户端同时尝试连接,因此它必须能够并行处理每个请求。我一直在努力寻找有关多线程的文档、指南...等。我发现了很多关于POSIXPthread的信息,但几乎没有找到关于GNUPth的信息(除了gnu.org中的官方手册)。那么,谁能解释一下POSIXPthread和GNUPth之间的区别?拜托,我不希望回复是维基百科内容的拷贝(请记住,我绝对是多线程的新手)。我希望我的服务器在所有基于*nix的系统之间具有可移植性和高效性,避免使用繁重的fork()。感谢您的帮助。PS:我认为最好在这里问这个问题:Windows怎么样?那里有Pthre

c++ - 在 C++ 中隐藏加密 key 的跨平台方式?

我的应用程序需要使用几个硬编码的对称加密key(虽然我知道存储公钥是唯一完美的解决方案,但这是没有商量余地的)。我们希望key被混淆存储,这样它们就不会通过分析可执行文件被识别出来,并尽可能短地“存在”在内存中——以增加执行任务的难度内存转储以明文形式检索它们。我对使用C++功能很感兴趣(想到使用某种scoped_key)。该解决方案必须可移植-Windows、Linux、MacOS,因此它无法利用操作系统加密API。您将如何设计这样一个系统?非常感谢。 最佳答案 在这里,您要做的只是默默无闻的安全性。如果你让我们中的一个人想出一个

c++ - main 在 pthread 之后不继续

我使用的是Ubuntu10.10,Code::Blocks和GCC4.2。我写过这样的代码:#include#include#includeusingnamespacestd;void*thread1proc(void*param){while(true)coutMain开始,创建线程。但是(对我来说)奇怪的是main没有继续运行。我希望在屏幕上和程序结束时看到“你好”消息。因为在Windows中,在Delphi中它对我很有效。如果“main”也是一个线程,为什么它不继续运行呢?是关于POSIX线程的吗?谢谢。 最佳答案 pthre

c++ - pthread_cond_signal 或 pthread_cond_broadcast 调用是否意味着写入内存屏障?

条件变量通常用于在互斥量下修改它们所指的状态。然而,当状态只是一个单一的只设置标志时,就不需要互斥锁来阻止同时执行。所以有人可能想做这样的事情:flag=1;pthread_cond_broadcast(&cvar);然而,这只有在pthread_cond_broadcast暗示写内存屏障时才是安全的;否则,等待线程可能会在标志写入之前看到条件变量广播。也就是说,等待线程可能会唤醒,消耗cvar信号,但看到标志仍然是0。所以,我的问题是:pthread_cond_broadcast和pthread_cond_signal调用是否意味着写入内存屏障?如果是这样,这在相关的POSIX(或其