Подробности

[В начало]

Проблема в реализации № S0167

Краткое описание

Функция ulimit(UL_SETFSIZE) не возвращает целую часть нового предельного размера файла деленного на 512

Подробное описание

В соответствии со стандартом LSB, функция ulimit(UL_SETFSIZE) должна возвращать целую часть нового предельного размера файла деленного на 512. В действительности, функция всегда возвращает 0 в случае успешного завершения. Следующий код иллюстрирует проблему. Он показывает, что после вызова ulimit(UL_SETFSIZE, 10000) предельный размер файла изменился, но этот вызов вернул 0.

Раздел стандарта

Linux Standard Base Core Specification 3.1, Chapter 13. Base Libraries, 13.5. Interface Definitions for libc, description of ulimit() function., который ссылается на The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition (SUS 3.0), System Interfaces, description of functions ulimit().

Пример

#include <ulimit.h>
#include <stdio.h>
	
int main( int argc, char ** argv ) 
{
	long res;
	res=ulimit(UL_GETFSIZE); 
	printf("Result of ulimit(UL_GETFSIZE): %ld\n", res);

	res=ulimit(UL_SETFSIZE, 10000); 
	printf("Result of ulimit(UL_SETFSIZE, 10000): %ld\n", res);

	res=ulimit(UL_GETFSIZE); 
	printf("Result of ulimit(UL_GETFSIZE): %ld\n", res);

	return 0;
}

Компонент

glibc

Принято

Red Hat Bugzilla, 6947

Статус

Исправлено в glibc-2.9

[В начало]