Я скопировал фрагмент кода из нескольких источников, но по какой-то причине я получаю ошибку неиспользованной переменной для переменной saun, когда пытаюсь реализовать. Любые указатели будут с благодарностью, спасибо!
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include "gfserver.h"
#include <sys/mman.h>
#define SOCKET_ADDR "sock_addr"
#define MAX_REQ_BUF 523
/* Main ========================================================= */
int main() {
int sockfd;
size_t n;
struct sockaddr_un saun;
int len;
if ((sockfd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0){
fprintf(stderr, "ERROR opening socket");
exit(1);
}
saun.sun_family = AF_UNIX;
strcpy(saun.sun_path, SOCKET_ADDR);
len = sizeof(saun.sun_family) + strlen(saun.sun_path);
struct sockaddr* sockaddptr;
sockaddptr = &saun;
if(connect(sockfd, sockaddptr, len) < 0){
fprintf(stderr, "ERROR connecting socket");
exit(1);
}
char request_buffer[MAX_REQ_BUF] = {0};
n = write(sockfd,request_buffer,MAX_REQ_BUF - 1);
if (n < 0){
fprintf(stderr, "ERROR writing to socket: %d\n",errno);
exit(-1);
}
}
https://users.cs.cf.ac.uk/Dave.Marshall/C/node28.html
http://osr507doc.sco.com/en/netguide/dusockT.code_samples.html
Приведенный выше код находится в файле с именем webproxy.c. По сути, это часть серверной программы, которая будет проверять локальный кеш через IPC. В другом файле (simplecached) есть еще один сокет. По какой-то причине этот похожий код не выдает такую же ошибку, пока я не удалю код сокета из webproxy.c, тогда код с простым кэшированием показывает похожую ошибку компиляции (Неиспользуемая переменная для ситуации того же типа). Я стесняюсь добавлять слишком много кода, рискуя разделить слишком много школьных заданий, поэтому я извиняюсь за это.
Ошибка компиляции:
make all
mv gfserver.o gfserver.tmpo
mv gfserver_noasan.o gfserver_noasan.tmpo
rm -rf *.o webproxy simplecached webproxy_noasan simplecached_noasan
mv gfserver.tmpo gfserver.o
mv gfserver_noasan.tmpo gfserver_noasan.o
cc -c -o webproxy.o -Wall --std=gnu99 -g3 -Werror -fPIC -fsanitize=address -fno-omit-frame-pointer webproxy.c
webproxy.c: In function ‘main’:
webproxy.c:15:23: error: storage size of ‘saun’ isn’t known
struct sockaddr_un saun;
^~~~
webproxy.c:15:23: error: unused variable ‘saun’ [-Werror=unused-variable]
cc1: all warnings being treated as errors
make: *** [webproxy.o] Error 1
Makefile:39: recipe for target 'webproxy.o' failed
"make all" terminated with exit code 2. Build might be incomplete.
15:21:58 Build Failed. 4 errors, 0 warnings. (took 177ms)