找不到C文件

时间:2015-04-05 20:20:35

标签: c sockets server

我正在创建一个套接字服务器,例如使用像“localhost:8080 / WWW / index.html”这样的输入,它将返回index.html文件。我能够解析请求,以便当有人输入我将有一个“/WWW/index.html”的缓冲区时,如果我做了vim /WWW/index.html,我会打开我的程序的位置由于某种原因,我的代码总是说没有找到该文件。以下是代码......

char* parseRequest(char* request) {
  //assume file paths are no more than 256 bytes + 1 for null. 
  char *buffer = malloc(sizeof(char)*257);
  memset(buffer, 0, 257);

  if(fnmatch("GET * HTTP/1.*",  request, 0)) return 0;

  sscanf(request, "GET %s HTTP/1.", buffer);
  return buffer;
}

int fileExists(const char *fname){
        FILE *file;
        if(file = fopen(fname, "r"))
        {
                fclose(file);
                return 1;
        }
        return 0;
}


        recv(sock,buffer,255,0);
        //reading inputted directory
        char *dir = parseRequest(buffer);
        if(fileExists(dir) == 1){
                send(sock, "File found", 200, 0);
        }else{
                send(sock, "404: File not found", 200, 0);
        }

1 个答案:

答案 0 :(得分:2)

dir等于“/WWW/index.html”

#define MAXBUF 256
#define DOCUMENTS_ROOT "/home/longbear/hw4"

char path[MAXBUF] = DOCUMENTS_ROOT;
strcat(path, dir);

。 。

现在 您应该可以在path打开该文件。