Why does this program fragment fail to compile if a C standard is specified? I compiles without complaint with a simple cc -c qq.c cat qq.c /* cc -c -std=c11 qq.c This file (qq.c) compiles without the -std=c11 flag or -std=c89 or std=c90 or any std= I tried, even -ansi qq.c: In function ‘sutime’: qq.c:32:28: error: ‘S_IFMT’ undeclared (first use in this function) if (Usemtime && (Filemode&S_IFMT) == S_IFREG) */ #include <stdio.h> #include <sys/types.h> #include <utime.h> #include <fcntl.h> #include <sys/stat.h> #include <time.h> #define PATHLEN 1024 extern char Rname[PATHLEN]; extern int Filemode; /* Unix style mode for incoming file */ extern int Usemtime; /* <>0: Accept file mod time */ void sutime(s, ti) char *s; time_t ti; { struct utimbuf times; if (ti && Usemtime) { times.actime = time(NULL); times.modtime = ti; if (utime(s, ×)) printf("Can't set file time to 0%lo\n", ti); } if (Usemtime && (Filemode&S_IFMT) == S_IFREG) chmod(Rname, (mode_t)(07777 & Filemode)); } -- Chuck Forsberg WA7KGX caf@xxxxxxxx www.omen.com Developer of Industrial ZMODEM(Tm) for Embedded Applications Omen Technology Inc "The High Reliability Software" 10255 NW Old Cornelius Pass Portland OR 97231 503-614-0430 -- test mailing list test@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe: https://admin.fedoraproject.org/mailman/listinfo/test