Как уже упоминали другие, вам нужно использовать пробелы вместо вкладок. Вот sprintf с другого встроенного FTP-сервера, который должен работать:
sprintf(line, "%s 1 %-10s %-10s %10lu Jan 1 1980 %s\r\n",
permstr, username, username,
length,
filename);
permstr
имеет значение типа "-rw-rw-rw-"
.
Что касается форматов даты, эти два должны работать, причем верхний используется, если дата старше 6 месяцев:
if (dfmt)
sprintf(buf, "%3.3s %2d %04d", month_name, month_num, year);
else
sprintf(buf, "%3.3s %2d %02d:%02d", month_name, month_num, hour, minute);