【发布时间】:2014-11-14 21:41:13
【问题描述】:
命令格式如下:
命令文件名字节\nfile_contents
我可以毫无问题地分离 ADD、文件名和字节数,但我不确定如何获取服务器命令的其余部分,即文件内容。
这就是我解析每个命令的方式。目前为了获取文件内容,我得到了最左边的 char*,即 '\n'。 file_contents char* 永远不会从 NULL 更改。
command = strtok( message, " \n" );
file = strtok( NULL, " " );
bytes = atoi( strtok( NULL, "\n" ) );
file_contents = strchr( message, '\n' );
对如何获取文件内容有什么建议吗?
【问题讨论】:
-
您确定在 bytes
\nfile_contents 中嵌入了真正的换行符 (ASCII 10 0xa),还是只是一个backslash后跟n? -
如果是换行符,它会被您的
bytes调用使用,导致file_contents = strchr( message, '\n' );指向消息末尾的换行符(如果存在)。再次使用strtok就足够了file_contents = strtok( NULL, "\n" );(以换行符或空终止字符结尾(如果不存在换行符)。