summaryrefslogtreecommitdiff
path: root/m4/open-max.m4
blob: 557aded95fa1626a6ea89b1ad18c139f91dc20bf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#serial 1
# Determine approximately how many files may be open simultaneously
# in one process.  This is approximate, since while running this test,
# the configure script already has a few files open.
# From Jim Meyering

AC_DEFUN([UTILS_SYS_OPEN_MAX],
[
  AC_CACHE_CHECK([determine how many files may be open simultaneously],
                 utils_cv_sys_open_max,
  [
  AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
    int
    main ()
    {
      FILE *result = fopen ("conftest.omax", "w");
      int i = 1;
      /* Impose an arbitrary limit, in case some system has no
	 effective limit on the number of simultaneously open files.  */
      while (i < 30000)
	{
	  FILE *s = fopen ("conftest.op", "w");
	  if (!s)
	    break;
	  ++i;
	}
      fprintf (result, "%d\n", i);
      exit (fclose (result) == EOF);
    }
  ]])],
       [utils_cv_sys_open_max=`cat conftest.omax`],
       [utils_cv_sys_open_max='internal error in open-max.m4'],
       [utils_cv_sys_open_max='cross compiling run-test in open-max.m4'])])

  AC_DEFINE_UNQUOTED([UTILS_OPEN_MAX],
    $utils_cv_sys_open_max,
    [the maximum number of simultaneously open files per process])
])