C# 努力理解博士后';C语言中的二进制复制格式#
考虑以下关于二进制复制的文本: 11字节序列PGCOPY\n\377\r\n\0- 请注意,零字节是必需的 签名的一部分。(签名) 是为了方便 已删除文件的标识 被一个非8位的干净传输所屏蔽。 此签名将由以下人员更改: 行尾转换过滤器, 丢弃零字节,丢弃高位, 或奇偶校验更改。) 我可以创建标题的其余部分,但\377是什么意思?我以为一个字节的最大值是256 此外,在示例中:C# 努力理解博士后';C语言中的二进制复制格式#,c#,.net,postgresql,C#,.net,Postgresql,考虑以下关于二进制复制的文本: 11字节序列PGCOPY\n\377\r\n\0- 请注意,零字节是必需的 签名的一部分。(签名) 是为了方便 已删除文件的标识 被一个非8位的干净传输所屏蔽。 此签名将由以下人员更改: 行尾转换过滤器, 丢弃零字节,丢弃高位, 或奇偶校验更改。) 我可以创建标题的其余部分,但\377是什么意思?我以为一个字节的最大值是256 此外,在示例中: 0000000 P G C O P Y \n 377 \r \n \0 \0 \0
0000000 P G C O P Y \n 377 \r \n \0 \0 \0 \0 \0 \0
0000020 \0 \0 \0 \0 003 \0 \0 \0 002 A F \0 \0 \0 013 A
0000040 F G H A N I S T A N 377 377 377 377 \0 003
0000060 \0 \0 \0 002 A L \0 \0 \0 007 A L B A N I
0000100 A 377 377 377 377 \0 003 \0 \0 \0 002 D Z \0 \0 \0
0000120 007 A L G E R I A 377 377 377 377 \0 003 \0 \0
0000140 \0 002 Z M \0 \0 \0 006 Z A M B I A 377 377
0000160 377 377 \0 003 \0 \0 \0 002 Z W \0 \0 \0 \b Z I
0000200 M B A B W E 377 377 377 377 377 377
当我解释格式时,这些相同的377值代表什么,它们不应该是\0的吗
如果有人能帮助完成剩下的格式,我们将不胜感激。我可以作弊并使用CVS数据库副本,但由于我需要复制的行数(以百万计),我知道二进制格式在速度上比CVS格式有很多优势。二进制格式的
\377
是八进制-十进制值是255。该格式还有什么特别让您困惑的地方吗?基本上,使用二进制格式不会获得任何显著的加速。它有不同的好处,但更快地加载数据并不是其中之一
只需使用标准的csv和COPY命令,您就可以了。“但是由于我需要复制的行数(以百万计),我知道二进制格式在速度上比CVS格式有很多优势。”如果您需要再次执行此操作,当然会。但是,如果只需要执行一次,只运行较慢的转储可能会比花时间实现较快的格式更快。这回答了很多问题,特别是为什么例如“013”是长度a的值,但实际上长度小于该值。这更有意义。谢谢