Home > CBM > BASIC > Keywords > Close
180 Subpages: (divide), (equal), (less), (minus), (more), (multiply), (plus), (power), Abs, And, Append, Asc, Atn, Auto, Backup, Bank, Begin, Bend, Bload, Boot, Box, Bsave, Bump, Catalog, Char, Chr, Circle, Clr, Cmd, Collect, Collision, Color, Concat, Cont, Copy, Cos, Data, Dclear, Dclose, Dec, Def, Delete, Dim, Directory, Dispose, Dload, Do, Dopen, Draw, Ds, Ds string, Dsave, Dverify, El, Else, End, Envelope, Er, Err, Exit, Exp, Fast, Fetch, Filter, Fn, For, Fre, Get, Get num, Getkey, Go, Gosub, Goto, Graphic, Gshape, Header, Help, Hex, If, Input, Input num, Instr, Int, Joy, Key, Left, Len, Let, List, Load, Locate, Log, Loop, Mid, Monitor, Movspr, New, Next, Not, Off, On, Open, Or, Paint, Peek, Pen, Pi, Play, Pointer, Poke, Pos, Pot, Print, Print num, Pudef, Quit, Rclr, Rdot, Read, Record, Rem, Rename, Renumber, Restore, Resume, Return, Rgr, Right, Rlum, Rnd, Rreg, Rspcolor, Rsppos, Rsprite, Run, Rwindow, Save, Scale, Scnclr, Scratch, Sgn, Sin, Sleep, Slow, Sound, Spc, Sprcolor, Sprdef, Sprite, Sprsav, Sqr, Sshape, St, Stash, Step, Stop, Str, Swap, Sys, Tab, Tan, Tempo, Then, Ti, Ti string, To, Trap, Troff, Tron, Until, Using, Usr, Val, Verify, Vol, Wait, While, Width, Window, Xor

KeywordAbbreviationToken (hex)Version(s)Classification
CLOSECL{Shift+O}A01.0+Command and Statement

 Syntax  
CLOSE fileNumber [ , deviceNumber [ , flags [ , commandString ] ] ]
 
ParametersTypeLegal Value(s)Default ValueNote(s)
fileNumberUnsigned Byte 0 to 255 
Should be a previously OPEN'd file#
deviceNumberUnsigned Byte 0 ~ 255 
ignored 
flagsUnsigned Byte0 ~ 255 
ignored
commandStringString
0 ~ 255 chars
ignored
 
 
 Purpose 
Close an open "file".
 
 Remarks 
The CLOSE statement should be used after all communication has ended following a previous OPEN.  For most devices, CLOSE will flush any buffer.
 
Failure to use CLOSE often results in corrupt "files" due to the final bytes (whatever is buffered) not being flushed.  Note the BASIC command CLR (which is called by NEW, RUN, and in direct mode, LOAD) commits this dangerous mistake!
 
The deviceNumber, flags, and commandString can have any value of the appropriate type.  They are (generally) ignored.  However, if their type is wrong, a TYPE MISMATCH ERROR is generated, and otherwise if the values are not legal (see table above) an ILLEGAL QUANTITY ERROR occurs.
 
CLOSE will silently "succeed" if fileNumber refers to a file that was never opened.
 
If the fileNumber refers to an RS-232(C) device of a previous OPEN statement (regardless of this statement's deviceNumber) then any/all character(s) buffered for output will be "lost"; you have to check a secret variable to determine if the transmit buffer is empty (see ST).  CLOSE will also de-allocate RS-232(C) buffers on most systems.
 
Most printers (both IEEE/IEC bus and RS-232) buffers data by line.  You often need to use an "empty" PRINT# to flush the line they have buffered.
 
Examples:
CLOSE 1

READY.
CLOSE 2,-17
?ILLEGAL QUANTITY ERROR

READY.
CLOSE 2, 17

READY.
OPEN 4,4  : CMD 4 : REM prepare printer to receive 'direct output'
LIST      : REM list program to printer
PRINT #4  : REM flush last line

READY.
CLOSE 4

READY.
 
 Compare With 
 
 Contrast With 
 See Also 

© H2Obsession, 2014