fread的声明如下: size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); 问题是:两个这样的fread调用的阅读性能有差异: char a[1000]; fread(a, 1, 1000, stdin); fread(a, 1000, 1, stdin); 它会一次读取1000个字节吗?
任何人都可以告诉我如何在C#.NET版本2中直接获取一个字节数组结构? 就像C语言中熟悉的fread一样,到目前为止,我在读取字节stream和自动填充结构方面还没有取得太大的成功。 我已经看到一些使用unsafe关键字在托pipe代码中存在指针hocus-pocus的实现。 看看这个例子: public unsafe struct foobarStruct{ /* fields here… */ public foobarStruct(int nFakeArgs){ /* Initialize the fields… */ } public foobarStruct(byte[] data) : this(0) { unsafe { GCHandle hByteData = GCHandle.Alloc(data, GCHandleType.Pinned); IntPtr pByteData = hByteData.AddrOfPinnedObject(); this = (foobarStruct)Marshal.PtrToStructure(pByteData, this.GetType()); hByteData.Free(); } } } 我有两个构造函数foobarStruct的原因 是不是有一个空的构造函数。 在实例化结构时将一块内存(作为字节数组)传入构造函数。 这个实现是否足够好,还是有一个更干净的方法来实现这一点? 编辑:我不想使用ISerializable接口或其实现。 我正在尝试读取一个二进制图像来解决使用的字段,并使用PE结构确定其数据。
有人可以澄清什么APNs(苹果推送通知)要求您如何查询它? 文档说,一旦build立连接就开始发送。 这是否意味着我不做一个fread()呢? 这是我目前的代码来尝试阅读它。 我没有把fread()放在一个循环中,因为我不知道什么响应表示“没有更多的logging要读取”,我不希望在我的服务器上出现无限循环。 <?php $apnsCert = 'HOHRO-prod.pem'; $streamContext = stream_context_create(); stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert); stream_context_set_option($streamContext, 'ssl', 'verify_peer', false); $apns = stream_socket_client('ssl://feedback.push.apple.com:2196', $error, $errorString, 60, STREAM_CLIENT_CONNECT, $streamContext); echo 'error=' . $error; echo 'errorString=' . $errorString; $result = fread($apns, 38); echo 'result=' . $result; fclose($apns); ?> 到目前为止,我所得到的是一个空回复。 没有错误,所以它正在连接。 我不知道是否空回答意味着没有数据,或者我的fread()是做错的方法。 谢谢