0
該命令將在以下形式:遇到問題用C解析「文件服務器的命令」
命令文件名字節\ 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');
有關如何獲取文件內容的任何建議?
你確定你有一個真正的換行符(ASCII 10 0xa)嵌入字節'\ n'file_contents或者是簡單的'反斜槓'後跟'n'嗎? – 2014-11-14 21:55:15
如果是換行符,它會被'bytes'調用消耗,導致'file_contents = strchr(message,'\ n');'指向消息結尾處的換行符(如果存在)。再次使用'strtok'應該足夠了'file_contents = strtok(NULL,「\ n」);'(以換行符或空終止字符結尾(如果沒有換行符)。 – 2014-11-14 21:58:29