Я не говорю, что это лучшее решение или предпочтительное решение данной проблемы. Однако может быть полезно помнить, что функции могут возвращать структуры. Хотя функции не могут возвращать массивы, массивы могут быть обернуты в структуры, и функция может возвращать структуру, тем самым перенося массив с ней. Это работает для массивов с фиксированной длиной.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef
struct
{
char v[10];
} CHAR_ARRAY;
CHAR_ARRAY returnArray(CHAR_ARRAY array_in, int size)
{
CHAR_ARRAY returned;
/*
. . . methods to pull values from array, interpret them, and then create new array
*/
for (int i = 0; i < size; i++ )
returned.v[i] = array_in.v[i] + 1;
return returned; // Works!
}
int main(int argc, char * argv[])
{
CHAR_ARRAY array = {1,0,0,0,0,1,1};
char arrayCount = 7;
CHAR_ARRAY returnedArray = returnArray(array, arrayCount);
for (int i = 0; i < arrayCount; i++)
printf("%d, ", returnedArray.v[i]); //is this correctly formatted?
getchar();
return 0;
}
Я предлагаю комментарии о сильных и слабых сторонах этого метода. Я не удосужился это сделать.
Заголовок Last-Modified и Expires также может быть полезным дополнением.
Ваш сервер должен также проверять запросы с заголовком If-Modified-Since и возвращать ответ 304 Not Modified, если это возможно, чтобы ускорить процесс.
попробуйте истекший заголовок http: http://en.wikipedia.org/wiki/List_of_HTTP_headers
Возможно, вам придется объединить это с вашим контролем кэша
Вы не можете и не должны - это решение пользователя делать не ваше.
То, что вы можете сделать, - это настоятельно рекомендовать правильные заголовки, но даже тогда вы следует ожидать, что после этого я обработаю ряд запросов HEAD.