ftwin
0.8.10
ft_system.c
Go to the documentation of this file.
1
6
/*
7
* Copyright (C) 2025 François Pesce : francois.pesce (at) gmail (dot) com
8
*
9
* Licensed under the Apache License, Version 2.0 (the "License");
10
* you may not use this file except in compliance with the License.
11
* You may obtain a copy of the License at
12
*
13
* http://www.apache.org/licenses/LICENSE-2.0
14
*
15
* Unless required by applicable law or agreed to in writing, software
16
* distributed under the License is distributed on an "AS IS" BASIS,
17
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
* See the License for the specific language governing permissions and
19
* limitations under the License.
20
*/
21
22
#include "
ft_system.h
"
23
24
#if defined(__unix__) || defined(__unix) || defined(unix) || \
25
(defined(__APPLE__) && defined(__MACH__))
26
#include <unistd.h>
27
#endif
28
29
#ifdef _WIN32
30
#include <windows.h>
31
#endif
32
33
unsigned
int
ft_get_cpu_cores
(
void
)
34
{
35
#if defined(_SC_NPROCESSORS_ONLN)
36
/* POSIX systems (Linux, macOS, BSD) */
37
long
nprocs = sysconf(_SC_NPROCESSORS_ONLN);
38
if
(nprocs > 0) {
39
return
(
unsigned
int
) nprocs;
40
}
41
/* Fall through to default if sysconf fails */
42
#elif defined(_WIN32)
43
/* Windows */
44
SYSTEM_INFO sysinfo;
45
GetSystemInfo(&sysinfo);
46
if
(sysinfo.dwNumberOfProcessors > 0) {
47
return
(
unsigned
int
) sysinfo.dwNumberOfProcessors;
48
}
49
/* Fall through to default if GetSystemInfo fails */
50
#endif
51
52
/* Fallback to a reasonable default */
53
return
4;
54
}
ft_get_cpu_cores
unsigned int ft_get_cpu_cores(void)
Get the number of available CPU cores on the current system.
Definition
ft_system.c:33
ft_system.h
System-related utility functions.
src
ft_system.c
Generated by
1.9.8