1 /* $Cambridge: exim/src/OS/os.c-Linux-libc5,v 1.1 2004/10/06 15:07:39 ph10 Exp $ */
3 /*************************************************
4 * Exim - an Internet mail transport agent *
5 *************************************************/
7 /* Copyright (c) University of Cambridge 2001 */
8 /* See the file NOTICE for conditions of use and distribution. */
10 /* Linux-specific code. This is concatenated onto the generic src/os.c file.
11 Linux has an apparently unique way of getting the load average, so we provide a
12 unique function here, and define OS_LOAD_AVERAGE to stop src/os.c trying to
13 provide the function. The macro may be set initially anyway, when compiling os.
14 for utilities that don't want this function. */
16 #ifndef OS_LOAD_AVERAGE
17 #define OS_LOAD_AVERAGE
25 int fd = open ("/proc/loadavg", O_RDONLY);
26 if (fd == -1) return -1;
27 count = read (fd, buffer, sizeof(buffer));
29 if (count <= 0) return -1;
30 count = sscanf (buffer, "%lf", &avg);
31 if (count < 1) return -1;
33 return (int)(avg * 1000.0);
36 #endif /* OS_LOAD_AVERAGE */
38 /* End of os.c-Linux */