You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							50 lines
						
					
					
						
							1.0 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							50 lines
						
					
					
						
							1.0 KiB
						
					
					
				
								/* $Id: datalimit.c,v 1.5 2007/08/24 18:17:31 fabio Exp fabio $ */
							 | 
						|
								
							 | 
						|
								#ifndef HAVE_SYS_RESOURCE_H
							 | 
						|
								#define HAVE_SYS_RESOURCE_H 1
							 | 
						|
								#endif
							 | 
						|
								#ifndef HAVE_SYS_TIME_H
							 | 
						|
								#define HAVE_SYS_TIME_H 1
							 | 
						|
								#endif
							 | 
						|
								#ifndef HAVE_GETRLIMIT
							 | 
						|
								#define HAVE_GETRLIMIT 1
							 | 
						|
								#endif
							 | 
						|
								
							 | 
						|
								#if HAVE_SYS_RESOURCE_H == 1
							 | 
						|
								#if HAVE_SYS_TIME_H == 1
							 | 
						|
								#include <sys/time.h>
							 | 
						|
								#endif
							 | 
						|
								#include <sys/resource.h>
							 | 
						|
								#endif
							 | 
						|
								
							 | 
						|
								#ifndef RLIMIT_DATA_DEFAULT
							 | 
						|
								#define RLIMIT_DATA_DEFAULT 67108864	/* assume 64MB by default */
							 | 
						|
								#endif
							 | 
						|
								
							 | 
						|
								#ifndef EXTERN
							 | 
						|
								#   ifdef __cplusplus
							 | 
						|
								#	define EXTERN extern "C"
							 | 
						|
								#   else
							 | 
						|
								#	define EXTERN extern
							 | 
						|
								#   endif
							 | 
						|
								#endif
							 | 
						|
								
							 | 
						|
								EXTERN unsigned long getSoftDataLimit(void);
							 | 
						|
								
							 | 
						|
								unsigned long
							 | 
						|
								getSoftDataLimit(void)
							 | 
						|
								{
							 | 
						|
								#if HAVE_SYS_RESOURCE_H == 1 && HAVE_GETRLIMIT == 1 && defined(RLIMIT_DATA)
							 | 
						|
								    struct rlimit rl;
							 | 
						|
								    int result;
							 | 
						|
								
							 | 
						|
								    result = getrlimit(RLIMIT_DATA, &rl);
							 | 
						|
								    if (result != 0 || rl.rlim_cur == RLIM_INFINITY)
							 | 
						|
									return((unsigned long) RLIMIT_DATA_DEFAULT);
							 | 
						|
								    else
							 | 
						|
									return((unsigned long) rl.rlim_cur);
							 | 
						|
								#else
							 | 
						|
								    return((unsigned long) RLIMIT_DATA_DEFAULT);
							 | 
						|
								#endif
							 | 
						|
								
							 | 
						|
								} /* end of getSoftDataLimit */
							 |