/*
* call-seq:
* file.get_attr(attribute) -> attribute_value
*
* Returns the value of <i>attribute</i> for the file
*
* File.new(__FILE__).get_attr("description") # => "test script"
*
*/
VALUE rb_file_get_attrf(fobj, aname)
VALUE fobj, aname;
{
char *aval;
int *size;
int ret;
VALUE retval;
OpenFile *fptr;
FILE *f;
GetOpenFile(fobj, fptr);
f = GetReadFile(fptr);
Check_Type(fobj, T_FILE);
Check_Type(aname, T_STRING);
size = malloc(sizeof(int));
aval = malloc(16000);
*size = 16000;
ret = attr_getf(fileno(f), StringValueCStr(aname), aval, size, 1);
if(ret == 0) {
retval = rb_str_new(aval, *size);
free(aval);
free(size);
return retval;
} else {
free(aval);
free(size);
if(ret != ENODATA && ret != ENOATTR) {
rb_sys_fail("");
}
return Qnil;
}
}