我理解是什么restrict意思,但我对这种用法/语法有点困惑:
#include <stdio.h>
char* foo(char s[restrict], int n)
{
printf("%s %d\n", s, n);
return NULL;
}
int main(void)
{
char *str = "hello foo";
foo(str, 1);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
成功编译 gcc main.c -Wall -Wextra -Werror -pedantic
在这种情况下如何限制工作并由编译器解释?
gcc版本:5.4.0
我写程序,它工作正常,但是我想用sendfile()重写它,现在我陷入了循环。
服务器端:
客户端:
PS在以前的程序版本中,我花了一些时间,但这取决于我为什么使用printf多少?例如,我添加一行,并保留printf程序,将其删除,即可正常工作。
UPDT:重写代码客户端/服务器
客户
/* Received file name */
int rc_byte = 0;
rc_byte = recv(fd, rx_tx_file->out_name, sizeof(rx_tx_file->out_name),0);
if (rc_byte < 0){
perror("Failed to receive file name: ");
exit(-1);
} else
printf("Recv out name %s\n", rx_tx_file->out_name);
//printf("file name rc %s\n", rx_tx_file->out_name);
trimm_path_name(rx_tx_file);
/* Received md5sum */
rc_byte = recv(fd, rx_tx_file->md5sum, sizeof(rx_tx_file->md5sum), 0);
if (rc_byte < 0) {
perror("Failed to receive check sum: "); …Run Code Online (Sandbox Code Playgroud)