ref: c02ebef74e491de7e34a681d23bbcde1ee08f5b5
dir: /lib/scc/war.c/
static char sccsid[] = "@(#) ./lib/scc/war.c"; #include <assert.h> #include <stdio.h> #include "../../inc/ar.h" int wrarhdr(FILE *fp, struct arhdr *hdr) { int len; len = fprintf(fp, "%-16s%-12llu%-6u%-6u%-8o%-10llu`\n", hdr->name, hdr->time, hdr->uid, hdr->gid, hdr->mode, hdr->size); assert(len== ARHDR_SIZ); return (feof(fp)) ? EOF : len; } int wrarfile(FILE *fo, struct arhdr *hdr) { FILE *fi; int c; if ((fi = fopen(hdr->name, "rb")) == NULL) return -1; while ((c = getc(fi)) != EOF) putc(c, fo); if (hdr->size & 1) putc('\n', fo); return (fclose(fi) == EOF) ? -1 : 0; }