小编Pet*_*etr的帖子

如何防止字符串被拦截

我的理解(可能是错误的)是在c#中创建一个字符串时它会被插入"实习池".这保持了对字符串的引用,以便多个相同的字符串可以共享操作内存.

但是我正在处理很多很可能是唯一的字符串,我需要在完成每个字符串时将它们从操作内存中完全删除,我不知道如何删除缓存的引用以便垃圾收集器可以从内存中删除所有字符串数据.如何防止字符串被嵌入此缓存中,或者如何清除它/或从中删除字符串以便它确实从操作内存中删除?

c# memory

11
推荐指数
2
解决办法
2535
查看次数

如何在||之后使用多个命令 在bash中

想象一下代码:

ls || echo "Unable to execute ls (returned non zero)"
Run Code Online (Sandbox Code Playgroud)

如果我需要执行更多命令,如果:

ls || echo "this is echo 1" <some operator> echo "this is echo 2" <some operator> exit 1
Run Code Online (Sandbox Code Playgroud)

在C(假设我有功能ls)我可以做(即使它看起来很疯狂):

ls() || (command1() && command2());
Run Code Online (Sandbox Code Playgroud)

但我怀疑我可以在bash中使用这样的括号

编辑:我知道我可以创建一个包含这些命令的bash函数,但是如果我需要将它与exit 1结合起来(在函数中退出会退出该函数,而不是整个脚本)

bash

10
推荐指数
2
解决办法
3995
查看次数

如何列出主持人所属的组?

我有一个非常复杂的Ansible设置,有数千台服务器和数百个组,各种服务器都是(动态库存文件)的成员.

有没有办法轻松显示特定主机所属的所有组?

我知道如何列出所有组及其成员:

ansible localhost -m debug -a 'var=groups'
Run Code Online (Sandbox Code Playgroud)

但我想这样做不是针对所有主机,而是针对单个主机.

ansible

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

如何在默认情况下取消选中NSIS中的某个部分

我有一个NSIS安装程序,这里有一些用户可以选择安装的组件:

Section "Modules" SecModules
  SetOutPath "$INSTDIR"
  CreateDirectory $INSTDIR\modules
  ...
SectionEnd

Section "Freenode util" SecFreenode
  SetOutPath "$INSTDIR"
  CreateDirectory $INSTDIR\modules
  ...
SectionEnd
Run Code Online (Sandbox Code Playgroud)

如何才能使第二个未经检查?默认情况下,它们都会被检查

nsis

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

空列表或字典的内存使用情况?

空列表或字典使用了多少内存?如:

List<double> list = new List<double>();
Run Code Online (Sandbox Code Playgroud)

指针本身在x86和64位x64操作系统上至少占用32位,但是列表本身呢?有0条记录.

问的原因是,你可以通过设置列表来节省一些字节null吗?

(想象一下,你有一个类,其中包含一些List<T>在某些情况下正在使用的类,在其他情况下它不是,在这种情况下有一个boolean喜欢IsEmptynull不是空列表可能会节省一些操作内存.特别是如果你有成千上万的这样的操作内存中的类,每一位都很重要.)

c# memory

9
推荐指数
1
解决办法
4220
查看次数

PyArg_UnpackTuple(python c api)中的参数名是什么?

本文档http://docs.python.org/2/c-api/arg.html#PyArg_UnpackTuple描述了函数的所有参数,除了const char *name.

这个参数是什么用的?我应该放在那里,为什么?

c python

9
推荐指数
1
解决办法
410
查看次数

如何在调试时显示整个QString

我正在使用Qtcreator并且总是当我需要显示大字符串时,它会被剪裁,请参见屏幕截图: 在此输入图像描述

有没有办法显示整个QString?请注意,在编辑器中使用打开视图内容也无济于事,在那里也是如此.

c++ debugging qt qt-creator

9
推荐指数
1
解决办法
2029
查看次数

linux如何解析用作扩展的库的未解析符号

我想要了解一个谜:

我已经创建了一个可以使用动态库扩展的应用程序,其中包含一些代码,但需要访问应用程序本身定义的某些函数.说清楚:

我有应用程序让它称之为APP,然后我有扩展EXT.APP扩展了一些在EXT中实现的功能,但是EXT需要调用APP中定义的一些功能以便"挂钩"它(例如在APP布局中注册新项目等).在MS Windows中,由于未解析的符号,我无法编译EXT - 这是有意义的 - 我如何调用APP中的函数而实际上没有任何东西可以链接这些,所以我创建了一个基本的APP的DLL库APP刚刚构建为DLL,具有我需要使用__declspec(dllexport)导出的所有这些函数(让我们称之为LIB),所以它的工作原理如下:

APP加载EXT,EXT通过LIB调用APP功能.这在某种程度上是一个讨厌的解决方案,但我想不出更好.什么是最重要的 - 它完美无缺.

现在让我发疯的原因是如何在Linux上运行而不必创建LIB?这个windows的东西很讨厌,但它很有道理,但是在linux上我甚至可以构建EXT而无需构建APP或LIB,它只是忽略了这些未解析的符号并将其链接起来.整个库包含它们,我可以通过调用来验证:

ld: warning: cannot find entry symbol _start; not setting start address
libhuggle_md.so: undefined reference to `Huggle::Query::NetworkManager'
libhuggle_md.so: undefined reference to `Huggle::Syslog::HuggleLogs'
libhuggle_md.so: undefined reference to `Huggle::Core::HuggleCore'
libhuggle_md.so: undefined reference to `Huggle::QueryPool::HugglePool'
libhuggle_md.so: undefined reference to `Huggle::Localizations::HuggleLocalizations'
libhuggle_md.so: undefined reference to `Huggle::Configuration::HuggleConfiguration'
libhuggle_md.so: undefined reference to `Huggle::GC::gc'
libhuggle_md.so: undefined reference to `Huggle::WikiUser::WikiUser(QString)'
libhuggle_md.so: undefined reference to `Huggle::WikiUtil::MessageUser(Huggle::WikiUser*, QString, QString, QString, bool, Huggle::Query*, bool, bool, bool, QString, bool, bool)'
Run Code Online (Sandbox Code Playgroud)

因此,您可以看到EXT正在引用APP的某些功能,但它从未链接到任何实现它们的库.他们只是没有解决. …

c++ linux qt

9
推荐指数
1
解决办法
411
查看次数

如何在SVG中指定font-family

我有这张SVG图片:

<text
     xml:space="preserve"
     style="font-size:18px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:'Arial;Sans';-inkscape-font-specification:'Arial;Sans';font-stretch:normal;font-variant:normal"
     x="11.764346"
     y="192.01521"
     id="text3607"
     sodipodi:linespacing="125%"><tspan
       sodipodi:role="line"
       id="tspan3609"
       x="11.764346"
       y="192.01521">PCI-E</tspan></text>
Run Code Online (Sandbox Code Playgroud)

我使用inkscape在linux上编辑的.它使用了Windows上没有的字体"sans".我想指定一个包含所有主要操作系统上可用字体的font-family,但是我使用它的任何语法都不起作用.到目前为止我试过:

  • font-family:'Arial' - 适用于Windows
  • font-family:'Sans' - 适用于linux
  • font-family:'Sans,Arial' - 破碎
  • font-family:'Sans; Arial' - 破碎

这是什么工作的正确语法?我在IE和Firefox中渲染图片,两者似乎都有同样的问题.

这是完整的图片源代码:https://tools.wmflabs.org/paste/view/raw/c47ec7b8

fonts svg

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

QT:无法从另一个线程启用套接字通知程序

我有一个QTcpSocket,我需要控制它 - 使用多个线程写入+读取.

这在QT4中工作正常,但在QT5中我收到此错误,似乎只有1个线程同时访问套接字.如何让多个线程访问套接字?

基本上我想创建1个用于读取的线程和1个用于写入数据的线程,这样我就可以在其他应用程序中执行其他操作时异步读取和处理数据.

注意:回答Qt - 在新线程处理QTcpSocket对此没有帮助,因为它描述了如何将套接字从线程1传输到线程2,然后仅从线程2使用它.我需要从两个线程中使用它.

c++ sockets qt multithreading

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

标签 统计

c++ ×3

qt ×3

c# ×2

memory ×2

ansible ×1

bash ×1

c ×1

debugging ×1

fonts ×1

linux ×1

multithreading ×1

nsis ×1

python ×1

qt-creator ×1

sockets ×1

svg ×1