我使用以下代码来计算文件的MD5SUM -
byte[] b = System.IO.File.ReadAllBytes(file);
string sum = BitConverter.ToString(new MD5CryptoServiceProvider().ComputeHash(b));
Run Code Online (Sandbox Code Playgroud)
这通常工作正常,但如果我遇到一个大文件(~1GB) - 例如ISO映像或DVD VOB文件 - 我得到一个Out of Memory异常.
虽然,我能够在cygwin中为大约10秒的同一文件计算MD5SUM.
请建议如何让我的程序中的大文件工作.
谢谢
有没有办法找到在Linux中生成当前可执行文件的目标文件(RHEL是特定的).据我所知,可以使用"nm"查找导出的符号,"ldd"查找依赖的共享对象.
但是我找不到命令来查找由哪个可执行文件组成的对象(.o)文件的名称.可能吗?
我有一个C++ CORBA服务器,它实现了抛出用户定义的异常的接口.
当客户端和服务器都在C++中实现时(使用TAO orb和omniORB进行测试),我很容易捕获到特定的异常.
但是当我从Erlang(使用orber)调用相同的方法时,异常显示为一般异常,而不是特定的用户定义异常.
为了测试这个,我只使用了一个简单的IDL -
interface Messenger {
exception cirrus_error{
short error_code;
string error_desc;
};
boolean send_message(in string user_name,
in string subject,
inout string message) raises (cirrus_error);
};
Run Code Online (Sandbox Code Playgroud)
如果服务器和客户端都在C++中 - 我得到的异常是(对于测试我将其编码为始终抛出用户异常)
CORBA exception: cirrus_error (IDL:Messenger/cirrus_error:1.0)
Run Code Online (Sandbox Code Playgroud)
但是当通过Erlang调用时 - 我得到了 -
** exception throw: {'EXCEPTION',{'UNKNOWN',[],1330446337,'COMPLETED_MAYBE'}}
in function corba:raise/1
Run Code Online (Sandbox Code Playgroud)
在说明Orber应用程序以启用正确行为时,是否需要执行一些特殊操作?
编辑 - 这是我从erlang调用服务器的方式 -
在Erlang提示符下,这就是我所做的 -
1> orber:jump_start().
2> O = corba:string_to_object(IORStr).
3> 'Messenger':send_message(O, "s", "t", "f").
** exception throw: {'EXCEPTION',{'UNKNOWN',[],1330446337,'COMPLETED_MAYBE'}}
in function corba:raise/1
Run Code Online (Sandbox Code Playgroud) c# ×1
erlang ×1
executable ×1
hash ×1
large-files ×1
linux ×1
md5 ×1
object-files ×1
omniorb ×1
tao ×1