Special “C” Version

There are two versions of A-Shell available for Windows: the standard version and the “C” version. For most situations, the standard (non-C version) of A-Shell for Windows is preferred, but there are special circumstances in which the C version will offer better performance. This page explains why you might want to use the C version. In brief: use the standard version unless you have good reason to use the C version.

About the time that Windows 98 was released, Microsoft changed how some input/output processes were handled in Windows. This created complications for the A-Shell programs and users, which MicroSabio dealt with by creating an alternate version of A-Shell for Windows; one to work the old way, one to work the new way. However, and unfortunately, that requires that our users, who might be running the latest version of Windows or any other version from recent—and not so recent!—history. Here are the guidelines for selecting the version of A-Shell that will best work for you.

  • A-Shell does not support versions of Windows that are older than Windows 98. If you are running Windows 95 or 3.x, A-Shell will not work.
  • If you have Windows 98 or Windows ME, you must use the “C” version of A-Shell for Windows.

For most users running more recent versions of Windows (from Windows 2000 and later), the standard (i.e., non-C) version of A-Shell for Windows is the best choice. However, it is possible that you will get better performance with the “C” version in some peer-to-peer Windows network environments IF your application does not use LOKSER. If you have that environment, and if you have performance concerns, then the “C” version may be right for you. 

The “C” version is identified by “-w32c” in the installation package file name and a “c” at the end of the version string that appears in the Help…About box when A-Shell is running.

The material above should provide enough information for most A-Shell users in most circumstances to make an informed decision. If you are technically inclined, here are some additional details, depth and background:

The “C” version is built using the file I/O routines from the C portability library. Under the Windows implementation of the C portability library, the file I/O routines are essentially wrappers around the WIN32 File I/O routines. So in theory the two versions should give pretty much the same performance, except for the 2GB limitation imposed by the wrappers. But for reasons which have never been adequately explained,  the “C” version seems to run faster in a Windows peer-to-peer environment where files are shared across the network and in particular where LOKSER-style locking is not used. Some sites claim that the performance difference is quite significant.  Others report no benefit, or even that the “C” version is slower.  The differences in performance are presumably related to some differences in the file access options used by the “C” wrappers, resulting in different network caching characteristics, which in turn interact with the characteristics of the application resulting in performance variations.  But it’s all rather mysterious and difficult to pin down.  We continue to recommend that you use the standard version, but if you aren’t happy with the performance and find that the “C” version works better for your application in your environment, then feel free to use it.


Back to Top