我正在使用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.我找不到办法做到这一点.
有没有办法实现这种行为?
我已经读过这个问题并回答:malloc()和free()如何工作?
一位朋友问我怎样才能确定免费工作.我回答说,如果它不起作用,那么操作系统可能会崩溃,并且它不会再那么重要了.
但我对这个问题答案的本质更感兴趣.一旦我释放了记忆,我怎么能确定它已被释放?我只是假设它吗? 这是一个纯粹的理论问题,背后没有实际的代码,而且大多数时候考虑我决定"好吧无论如何都没关系",但我对这个答案感到不安.
例如,如果内存是一个问题,我想确保在免费调用后释放一个大型结构,否则我会尝试再次清理,有没有办法做到这一点?
编辑:对于那些说明我的问题在这里回答的人:C中的函数free()对我不起作用
答案提供那里只是说我"实际上无法测试是否free()有效".我试图理解为什么不能这样做.免费背后的本质是什么?
编辑2:在阅读完答案之后,似乎我接受了我给朋友的答案,即"它只是有效".
我有一个程序创建一个监听事件的线程。有一种情况,该线程永远不会收到该事件,我必须终止它。我知道如何捕获它不会收到此事件的情况。
我创建了一个std::thread,但是我没有找到有关如何终止线程的信息。我试过打电话
t.detach()
Run Code Online (Sandbox Code Playgroud)
然后让析构函数继续工作,但我无法以这种方式清理线程分配的资源。
我的问题是: 1. 有没有办法发送 SIGKILL 或等效的 a 来std::thread杀死它?2.有没有办法从线程内捕获这个信号来清理资源?
提出(并回答)的问题如何在 C++11 中终止线程?没有回答我的问题,因为我想从其父级终止线程,而不是从线程内终止线程。
此外,我的问题是我的工作线程可能正在等待阻塞系统调用(即传入数据包)或条件变量,这就是为什么这很棘手。