{{fbdoc item="title" value="FILEATTR"}}---- Returns information about an open file number {{fbdoc item="syntax"}}## [[KeyPgDeclare|declare]] [[KeyPgFunction|function]] **""FileAttr""** ( [[KeyPgByval|byval]] //filenum// [[KeyPgAs|as]] [[KeyPgLong|long]], [[KeyPgByval|byval]] //returntype// [[KeyPgAs|as]] [[KeyPgLong|long]] = 1 ) [[KeyPgAs|as]] [[KeyPgInteger|integer]] ## {{fbdoc item="usage"}}## #include "file.bi" //result// = **""FileAttr""**( //filenum//, [ //returntype// ] ) ## //or// ## #include "vbcompat.bi" //result// = **""FileAttr""**( //filenum//, [ //returntype// ] ) ## {{fbdoc item="param"}} ##//filenum//## The file number of a file or device opened with ##[[KeyPgOpen|Open]]## ##//returntype//## An integer value indicating the type of information to return. {{fbdoc item="ret"}} A value associated with the return type, otherwise 0 on error. {{fbdoc item="desc"}} Information about the file number is returned based on the supplied ##//returntype//## {{table columns="3" cellpadding="1" cells="Value;Description;constant;1;File Mode;fbFileAttrMode;2;File Handle;fbFileAttrHandle;3;Encoding;fbFileAttrEncoding"}} For File Mode, ##//returntype//## = 1 (##fbFileAttrMode##) the return value is the sum of one or more of the following values: {{table columns="3" cellpadding="1" cells="Value;File Mode;Constant;1;Input;fbFileModeInput;2;Output;fbFileModeOutput;4;Random;fbFileModeRandom;8;Append;fbFileModeAppend;32;Binary;fbFileModeBinary"}} For File Handle, ##//returntype//## = 2 (##fbFileAttrHandle##), the return value is the file handle as supplied by the C Runtime for file-type devices. On Windows only: For File Handle, ##//returntype//## = 2 (##fbFileAttrHandle##), the value returned for COM devices is the handle returned by ##""CreateFile""()## when the device was first opened. The value returned for LPT devices is the handle returned by ##""OpenPrinter""()## when the device was first opened. This handle value can be passed to other Windows API functions. On Linux only: For File Handle, ##//returntype//## = 2 (##fbFileAttrHandle##), the value returned for COM devices is the file descriptor returned by open() when the device was first opened. For Encoding, ##//returntype//## = 3 (##fbFileAttrEncoding##), the return value is one of the following values: {{table columns="3" cellpadding="1" cells="Value;Encoding;Constant;0;Ascii;fbFileEncodASCII;1;UTF-8;fbFileEncodUTF8;2;UTF-16;fbFileEncodUTF16;3;UTF-32;fbFileEncodUTF32"}} {{fbdoc item="ex"}} {{fbdoc item="filename" value="examples/manual/system/fileattr.bas"}}%%(freebasic) #include "vbcompat.bi" #include "crt.bi" dim f as FILE ptr, i as integer '' Open a file and write some text to it open "test.txt" for output as #1 f = cast( FILE ptr, FileAttr( 1, fbFileAttrHandle )) for i = 1 to 10 fprintf( f, !"Line %i\n", i ) next i close #1 '' re-open the file and read the text back open "test.txt" for input as #1 f = cast( FILE ptr, FileAttr( 1, fbFileAttrHandle )) while feof(f) = 0 i = fgetc(f) print chr(i); wend close #1 %% {{fbdoc item="diff"}} - None for ##//returntype//## = 1 - QBasic and 16-bit Visual Basic returned DOS file handle for ##//returntype//## = 2 - ##//returntype//## = 3 is new to ""FreeBASIC"" {{fbdoc item="see"}} - ##[[KeyPgOpen|Open]]## {{fbdoc item="back" value="CatPgOpsys|Operating System Functions"}}