小编Ari*_*erg的帖子

使用argparse显示隐藏选项

我正在使用argprase创建一个选项,这是一个非常具体的选项来完成一个特定的工作.该脚本目前有大约30个旋钮,大多数不经常使用.

我正在创建一个选项:

opt.add_argument('-opt',help="Some Help", help=argparse.SUPPRESS)
Run Code Online (Sandbox Code Playgroud)

但我希望有两种方法来显示脚本的帮助:

my_script -help
my_script -help-long
Run Code Online (Sandbox Code Playgroud)

我希望-help-long也显示所有隐藏的args.我找不到办法做到这一点.

有没有办法实现这种行为?

python argparse

8
推荐指数
1
解决办法
1122
查看次数

检查是否免费工作

我已经读过这个问题并回答:malloc()和free()如何工作?

一位朋友问我怎样才能确定免费工作.我回答说,如果它不起作用,那么操作系统可能会崩溃,并且它不会再那么重要了.

但我对这个问题答案的本质更感兴趣.一旦我释放了记忆,我怎么能确定它已被释放?我只是假设它吗? 这是一个纯粹的理论问题,背后没有实际的代码,而且大多数时候考虑我决定"好吧无论如何都没关系",但我对这个答案感到不安.

例如,如果内存是一个问题,我想确保在免费调用后释放一个大型结构,否则我会尝试再次清理,有没有办法做到这一点?

编辑:对于那些说明我的问题在这里回答的人:C中的函数free()对我不起作用 答案提供那里只是说我"实际上无法测试是否free()有效".我试图理解为什么不能这样做.免费背后的本质是什么?

编辑2:在阅读完答案之后,似乎我接受了我给朋友的答案,即"它只是有效".

c malloc free

7
推荐指数
2
解决办法
3235
查看次数

C++ 杀死 std::thread

我有一个程序创建一个监听事件的线程。有一种情况,该线程永远不会收到该事件,我必须终止它。我知道如何捕获它不会收到此事件的情况。

我创建了一个std::thread,但是我没有找到有关如何终止线程的信息。我试过打电话

t.detach()
Run Code Online (Sandbox Code Playgroud)

然后让析构函数继续工作,但我无法以这种方式清理线程分配的资源。

我的问题是: 1. 有没有办法发送 SIGKILL 或等效的 a 来std::thread杀死它?2.有没有办法从线程内捕获这个信号来清理资源?

提出(并回答)的问题如何在 C++11 中终止线程?没有回答我的问题,因为我想从其父级终止线程,而不是从线程内终止线程。

此外,我的问题是我的工作线程可能正在等待阻塞系统调用(即传入数据包)或条件变量,这就是为什么这很棘手。

c++ multithreading

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

标签 统计

argparse ×1

c ×1

c++ ×1

free ×1

malloc ×1

multithreading ×1

python ×1