Я написал программу для поддержки всех деталей дескриптора открытого файла.
Итак, я использовал функцию sysconf, чтобы получить разрешенный дескриптор максимального времени открытия файла во время выполнения.
если объявление массива не в глобальном значении, значит, оно не говорит об ошибке. Оно работает нормально.
Это моя программа,
#define MAX_CLIENT sysconf(_SC_OPEN_MAX)
int arr[MAX_CLIENT];
main ()
{
printf("%ld \n",MAX_CLIENT);
}
когда я делаю компиляцию это говорит об ошибке
error: variably modified ‘arr’ at file scope
Затем я проверил с помощью опции cc -E. После того, как препроцессор работает, программы выглядят так
int arr[sysconf(_SC_OPEN_MAX)];
main ()
{
printf("%ld \n",sysconf(_SC_OPEN_MAX));
}
это моя проблема, как объявить массив в глобальном.