int add_sendFile(struct in_addr* sin_addr, char name[]){ struct stat buf; struct sendfile* newFile = NULL; struct sendfile* rear = send_filelist_head; static unsigned int file_num=0; stat(name,&buf); if ( (newFile = (struct sendfile*)malloc(sizeof(struct sendfile))) == NULL ) { printf("newFile failed!\n"); return 1; } newFile->sin_addr.s_addr = sin_addr->s_addr; strncpy(newFile->name, name, 20); newFile->num=file_num; newFile->pkgnum=time(NULL); newFile->size=buf.st_size; newFile->ltime=buf.st_mtime; while (rear->next != NULL) { rear = rear->next; } rear->next = newFile; newFile->next = NULL; return 0;}
时间: 2024-04-03 14:37:25 浏览: 59
这段代码定义了一个名为 `add_sendFile` 的函数,它接受两个参数:一个是指向 `in_addr` 结构体的指针 `sin_addr`,另一个是一个字符数组 `name`。
这个函数的作用是向一个链表中添加一个新的文件节点,该节点包含文件名、文件大小、最后修改时间等信息。函数通过调用 `stat` 函数获取文件信息,然后动态分配一个 `sendfile` 结构体,将文件信息填充到结构体中,并将结构体加入到链表的末尾。最后,函数返回一个整数值,表示操作成功或失败。
阅读全文