Any DOS program is by default limited to 20 open file handles, the size of the file table in the PSP. If a program needs more, it has to call Int 21-67h to extend that table (and move it out of the PSP). If the number of DOS global file handles (files=…) wouldn’t be sufficient to accommodate that, the program would explicitly notify you that the files=… directive in config.sys has to be increased!
Clipper is special with this: Many Clipper compiled program don’t have the required number of file handles set (at link time). That number then has to be passed on to the program by the DOS environment variable CLIPPER. For instance by SET CLIPPER=options…F:50…options, before the program is started. If that isn’t done, the program won’t call DOS Int 21-67h, and be limited to 20 open file handles. The program could then well exit with error code 4: Too many open files (no handles left). Raising files=… doesn’t help of course since the program doesn’t call Int 21-67h.
vDos(Plus), like DOSBox, has no config.sys. I think the number of global file handles in DOSBox is 80 (?). Despite of many confusing Clipper related articles with F:120, even F:200 (that number seems to gotten bigger and bigger over time after first unsuccessfully only increasing files=…), that 80 should be more than enough for any Clipper program.