A Code Snippet
Here is a small code snippet illustrating the process of getting and releasing file numbers. We sacrificed robustness for simplicity, so don't take the code below for a shining example of fd. object's usage. Just see the parts related to the FILENUM library — that's the point right now.
** Tibbo Basic **
...
'set "#define FILENUM_MAX_SIGNATURE_LEN 3" and "#define FILENUM_DEBUG_PRINT 1" before running this test
'prepare the disk and create a file
fd.format(fd.availableflashspace,16)
fd.mount()
fd.create("log.txt")
'get a file number...
log_filenum=filenum_get("LOG")
if log_filenum=255 then
sys.halt '...uh-uh, out of sockets!
end if
'add data to the file, then close
fd.filenum=log_filenum
fd.open("LOG")
fd.setdata(filenum_who_uses(log_filenum))
fd.close
'release the file number
filenum_release(log_filenum)
...
And here is what appeared in the output pane of TIDE as the code executed:
** Tibbo Basic **
FILENUM> 'LOG' got file #0
FILENUM> 'LOG' released file #0
The first message corresponds to filenum_get(), the second one — to filenum_release(). "LOG" is the signature left by us, because this code deals with a log file.
Notice that the data saved into the log file consists of the file number's signature. As a result, the file will contain the string "LOG".