我知道获取文件大小的正常方法是使用FileInfo实例:
using System.IO;
class SizeGetter
{
public static long GetFileSize(string filename)
{
FileInfo fi = new FileInfo(filename);
return fi.Length;
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在不必使用静态方法创建FileInfo实例的情况下做同样的事情?
也许我想在每次我想要文件大小时创建一个新实例时过于吝啬,但是例如尝试计算包含5000多个文件的目录的总大小.尽管GC可能是最优化的,但是不应该有办法这样做而不必不必要地征税吗?
已经阅读了这个相关的问题,但正在寻找一些更具体的东西.
int
-sized值传递?对CMake来说很新,到目前为止我发现它非常有帮助.我有一组自定义库,我想使用交叉编译为多个平台构建.安装了工具链,我可以手工创建Makefile
我需要的工具链,但我希望能够使用CMake.
有没有办法告诉cmake
使用哪个工具链,无论是在命令行还是在CMakeLists.txt
文件中?
也许我只是错过了它,但是没有一个函数等同于文件描述符的fprintf,甚至是一种暂时在它们之间翻转的方法?
我需要开发一个可以启动一些计算的脚本.希望此脚本通过删除一些临时目录来正确处理^ C. 我在signal_handler中尝试了几个版本的代码:
shutil.rmtree(self.temp)
Run Code Online (Sandbox Code Playgroud)
甚至
os.system("rm -rf " + self.temp)
Run Code Online (Sandbox Code Playgroud)
当我中断执行并调用处理程序删除目录时,我收到的错误如下:
OSError: [Errno 17] File exists : 'foo'
Run Code Online (Sandbox Code Playgroud)
要么
rm: Unable to remove directory foo: File exists
Run Code Online (Sandbox Code Playgroud)
执行后,我要删除的目录为空,我可以rm -r
在shell中删除它.但是,如果我执行代码:
for f in os.listdir(self.temp):
os.remove(os.path.join(self.temp,f))
for f in os.listdir(self.temp):
print f
os.rmdir(self.temp)
Run Code Online (Sandbox Code Playgroud)
我当然得到错误,但第二个循环找到这个文件: .nfsA13D3
有人解决我的问题吗?谢谢 !
仍在学习 yacc 和 flex,并遇到了我的操作方法和教程未涵盖的场景。我正在尝试解析一个文件,并且在进行过程中,我正在对放置在文件中的代码进行一些辅助错误检查parser.y
。当我遇到字典顺序正确(即解析正确匹配)但逻辑不正确(意外值或不适当值)的内容时,我该如何退出yyparse
?另外,我可以让它返回一个错误代码给我,我可以在我的调用代码中检查吗?
/* Sample */
my_file_format:
header body_lines footer
;
header:
OBRACE INT CBRACE
|
OBRACE STRING CBRACE {
if ( strcmp ( $1, "Contrived_Example" ) != 0 ) { /* I want to exit here */ }
}
;
/* etc ... */
Run Code Online (Sandbox Code Playgroud)
我意识到在我的示例中,我可以简单地使用规则查找“Contrived_Example”,但我的观点在if
- 块中 - 我可以告诉我yyparse
我想在这里停止解析吗?
我有一些解析代码,允许将转义序列输入到一串文本中:
// In a file or large, multi-line string ...
my_parameter="A setting for the parameter\nthat contains \"escape sequence\" characters"
Run Code Online (Sandbox Code Playgroud)
当我解析它时,我处理反斜杠并将相应的字符添加到我使用std::ostringstream
实例构建的字符串中.换行,引号,反斜杠等都可以正常工作.然而,我正在考虑是否允许这个\b
序列,然后去看看我是否可以"输出"我的最后一个角色,ostringstream
你可以"取消"任何一个std::istream
.你能做这样的事吗?如果该函数不存在,是否有一种简单的方法将写入位置推回一个字符并简单地让下一个字符读取覆盖它?
这不是关键任务或类似的事情,但我很好奇其他人是否曾经遇到过这个问题.
处理发送多播数据包的项目,接收者可以根据需要选择加入/退出组.我注意到有两种加入/离开组的方法:IP_ADD_MEMBERSHIP/IP_DROP_MEMBERSHIP和IP_ADD_SOURCE_MEMBERSHIP/IP_DROP_SOURCE_MEMBERSHIP.无法从这里的手册页中得到任何东西,所以把这个扔给SO大师.有什么区别,如果有的话,你能举例说明何时使用一个而不是另一个?
我在Qt Designer中使用按钮和QDateEdit构建了简单的小部件.用户将日期输入QDateEdit,然后当他按下按钮时,日期将保存到变量中.
我该怎么做?
我有一个我正在处理的应用程序需要几个辅助线程,每个应用程序都要负责一些文件句柄(至少1个,超过10个).文件句柄不在线程之间共享,因此我不必担心一个辅助线程在select
查看准备读/写的内容时阻塞另一个.我想要确定的是,在执行select
/ pselect
call时,两个辅助线程都不会导致主线程停止执行.
我认为这不是一个问题 - 人们可以想象这样的事情会在网络服务器上完成 - 但我找不到任何具体说"是的,你可以这样做",当我用Google搜索时.我是否认为这不会导致任何问题?
为了澄清,我看到的是:
主要执行线程(select()
循环处理传入命令消息和传出响应)
辅助线程#1(select()
提供服务的循环)
辅助线程#2(select()
提供另一个服务的循环)
正如我之前提到的,没有一个文件句柄在线程之间共享 - 它们是在一个单独的线程中创建,使用和销毁的,其他线程不知道它们的存在.
我正在研究一个化学程序,它要求列出所有元素及其相应的原子质量单位,这些内容类似于:
Elements = [(H,1),(He,2)...(C,12)]
Run Code Online (Sandbox Code Playgroud)
所有元素及其AMU都从一个文件中读取,其中每一行都写成"C 12".我需要从文件中读取信息,将每一行附加到它自己的元组中,然后将元组附加到列表中.这是我尝试过的一些代码没有成功.
class chemistry:
def readAMU():
infil = open("AtomAMU.txt", "r")
line = infil.readline()
Atoms = list()
Element = ()
while line !="":
line = line.rstrip("\n")
parts = line.split(" ");
element = parts[0]
AMU = parts[1]
element.append(Element)
AMU.append(Element)
Element.append(Atoms)
Run Code Online (Sandbox Code Playgroud)
我是在正确的轨道上吗?如果不是,我如何将两个值附加到元组中,分配每个值和索引然后将其附加到列表中?
处理需要在电话上监控呼叫活动/状态的 SIP 应用程序。我的应用程序 (UA) 已在代理服务器上注册,被监控的手机也是如此。我正在使用 SUBSCRIBE/NOTIFY 消息告诉手机我想知道它的“对话”事件,一旦订阅,这工作正常。我遇到了两个问题:
我要求订阅时长为 900 秒,并且始终从手机返回 4000+ 秒的荒谬数量。
当订阅处于活动状态时,电话可能会被拔掉(不要问,但是,是的,这是一种可能性)。发生这种情况时,我不会收到有关电话不再可用的任何类型的通知。因此,我必须等待我的订阅超时,尝试更新它,处理失败并创建一个新订阅。
我意识到我可以在订阅到期之前更新我的订阅,但有没有更好的方法来解决这个问题?例如,我能否获得“存在”事件并使用它们来知道电话何时在那里?这些事件是否总是保证在手机启动时发生,即使如此,由于中间有一个代理,我是否会收到通知,或者我仍然不知道手机重新启动并且不再识别我的订阅( s)?这些“存在”更新是我可以从代理请求的吗?
任何见解都会很棒;目前,我将简单地尝试以更短的时间间隔刷新我的订阅,但我很想知道是否有更好的方法来解决它。提前致谢。
c ×4
python ×3
optimization ×2
.net ×1
append ×1
c# ×1
c++ ×1
cmake ×1
enums ×1
file-io ×1
filesize ×1
io ×1
iostream ×1
list ×1
makefile ×1
multicast ×1
multiplexing ×1
parsing ×1
performance ×1
posix-api ×1
printf ×1
pthreads ×1
pyqt ×1
python-2.4 ×1
qt-designer ×1
sip ×1
sockets ×1
tuples ×1
unix ×1
voip ×1
word-size ×1
yacc ×1