PTC MKS Toolkit Product FAQs

PTC MKS Toolkit 10.2



MKS Toolkit Technical FAQs

General

Licensing Activation System Requirements Connectivity Utilities Porting Deployment Additional Resources



General

Is MKS Toolkit compatible with Terminal Server/WinFrame/Hydra?

    Yes, MKS Toolkit, including the runtime components, work with thin-client technology.


Is MKS Toolkit compatible with Microsoft Services for UNIX?

    Yes, MKS Toolkit is compatible with SFU.


What is the performance impact of porting UNIX applications to Windows with MKS Toolkit?

    In general, the runtime components that extend Win32 to support UNIX functionality add insignificant overhead. In some cases – very specifically, fork() and UNIX-to-Windows security mapping – the runtime components must do more and therefore adds slightly more overhead. However, our customers generally find that their applications perform acceptably. If you do have a performance problem, you can call Win32 functions directly to resolve the issue.


In the information sent to PTC, what precisely is used to uniquely identify a computer system (node)?

    The following pieces of data are combined to create a unique node identifier:
    • CPU string
    • System volume GUID
    • Machine SID
    • Machine UUID (usually stripped out and ignored except under special circumstances)

    In addition, the system’s MAC address(es) are also sent to PTC, but it is not used to identify the node at activation time. However, MAC addresses are used at runtime to validate similarity to the activated node . As a result, changing network cards may result in deactivation. In particular PTC recommends that every available network card be turned on at activation to avoid inadvertent deactivation when changing to a wireless or docking station LAN card that was disabled at the time of activation.


Licensing

I use PTC MKS Toolkit as a CGI script from Apache or IIS. How many licenses do I need?

    The PTC MKS Toolkit SLA states that you need one license for every Concurrent Authenticated User. In this case there is a Windows account operating on behalf of the remote connected web user; therefore every web user who hits the page needs a license. Please contact PTC MKS Toolkit Sales for licensing and pricing for this situation.


In the information sent to PTC, what precisely is used to uniquely identify a computer system (node)?

    The following pieces of data are combined to create a unique node identifier:
    • CPU string
    • System volume GUID
    • Machine SID
    • Machine UUID (usually stripped out and ignored except under special circumstances)

    In addition, the system’s MAC address(es) are also sent to PTC, but it is not used to identify the node at activation time. However, MAC addresses are used at runtime to validate similarity to the activated node . As a result, changing network cards may result in deactivation. In particular PTC recommends that every available network card be turned on at activation to avoid inadvertent deactivation when changing to a wireless or docking station LAN card that was disabled at the time of activation.


Activation

In the information sent to PTC, what precisely is used to uniquely identify a computer system (node)?

    The following pieces of data are combined to create a unique node identifier:
    • CPU string
    • System volume GUID
    • Machine SID
    • Machine UUID (usually stripped out and ignored except under special circumstances)

    In addition, the system’s MAC address(es) are also sent to PTC, but it is not used to identify the node at activation time. However, MAC addresses are used at runtime to validate similarity to the activated node . As a result, changing network cards may result in deactivation. In particular PTC recommends that every available network card be turned on at activation to avoid inadvertent deactivation when changing to a wireless or docking station LAN card that was disabled at the time of activation.


System Requirements

Does MKS Toolkit support multi-processor machines? What about ported applications designed for running on multi-processor machines?

    Yes, MKS Toolkit supports both running on and porting UNIX applications designed for multiple processors.


What is the binary compatibility between NuTCRACKER and Toolkit releases?

    All releases going forward from NuTCRACKER 4.0 are upwardly binary compatible. In particular, NuTCRACKER 4.5+, 4.3, 4.2a, 4.2, 4.1 and 4.0 are compatible. This means that an application built with NuTCRACKER 4.0 will run with no problems on subsequent releases of NuTCRACKER or MKS Toolkit porting products.


Connectivity

Do MKS Toolkit products include a telnet daemon?

    Yes, MKS Toolkit products include a single connect telnet daemon. An unlimited connect version of the telnet daemon is available as an add-on to the standard product and in the Connectivity Suite runtime option for ported UNIX applications.


Do MKS Toolkit products contain rsh? rshd? rexec? rexecd? rlogin? rlogind? rcp?

    Yes, MKS Toolkit products include a complete suite of remote utilities and a single connect version of the remote services. This includes rsh (remote shell), rshd, rexec, rexecd, rlogin (remote login), rlogind and rcp (remote copy). An unlimited connect version of the daemons/services is available as an add-on to the standard product and in the Connectivity Suite runtime option for ported UNIX applications.


Do MKS Toolkit products contain ssh? sshd? sftp? scp?

    Yes, MKS Toolkit products include a complete suite of secure utilities and a single connect version of the secure services. This includes secsh (secure shell), secshd, sftp, sftp-service and scp (secure copy). An unlimited connect version of the daemons/services is available as an add-on to the standard product and in the Connectivity Suite runtime option for ported UNIX applications.


Do MKS Toolkit products support SAMBA?

    Yes, MKS Toolkit products support SAMBA.


Do MKS Toolkit products provide xterm?

    Yes, MKS Toolkit products, and the Connectivity Suite runtime option for ported UNIX applications, provide the xterm utility. You will require an X server to use this tool.


Do MKS Toolkit products include an X server?

    Yes, MKS Toolkit for Interoperability and MKS Toolkit for Enterprise Developers both include an X server. You can also purchase full or local English and Japanese X servers for deployment with your ported UNIX application.


Do MKS Toolkit products work with NFS clients?

    Yes, MKS Toolkit will work with any Windows file system driver provided they look like FAT or NTFS.


Utilities

What tape devices are supported by MKS data transfer tools?

    MKS data transfer utilities support ASPI, SCSI, and ATAPI tape devices.


Can the MKS tape backup products save all information you need to restore a Windows file system?

    Yes. Enhancements to the tape backup utilities, tar, cpio, pax, etc. save Access Control Lists, in addition to traditional UNIX file information. These backup tools let you preserve all the information you need to fully duplicate a Windows file system.


Will pax read tar and cpio archives?

    Yes. Both the command line pax and the graphical VisualPax support the tar and cpio archive formats. Please refer to the utilities reference pages for more information.


My users are non-command line savvy. Is there a way to make scripts more "Windows user" friendly?

    Yes. Using the graphical scripting utilities (dlg, msgbox, filebox) included with MKS Toolkit products, you can create and present your users with Windows dialog boxes to interact with your KornShell scripts. There are many examples of dlg-ksh scripts in the MKS Toolkit Resource Kit.


How does MKS Toolkit handle case-sensitivity of path and file names?

    Windows NTFS and VFAT file systems are case-preserving, while UNIX file systems are case-sensitive. On UNIX, you can have three files named Makefile, makefile, and MakeFile in the same directory. On Windows, you can have a file named Makefile, or one named makefile, or one named MakeFile, in a given directory, and the case of the name will be retained. You cannot, however, have more than one of these files in the same directory, because all three names will access the same file. This can be important when transferring files from UNIX to Windows. Refer to File Systems in the Windows Concepts chapter of the UNIX to Windows Porting Guide.


Can I run DOS commands and Windows applications from the MKS Toolkit UNIX shells?

    Yes, you can launch and interact with DOS commands and Windows applications from within the MKS Toolkit shell environments.


Porting

What languages/compilers does PTC MKS Toolkit support for migrating applications to Windows?

    PTC MKS Toolkit porting products supply cc, cxx, ncf77, and ncf90 compiler drivers for C, C++, Fortran 77, and Fortran 90. The PTC MKS Toolkit cc and cxx drivers require that you have Microsoft Visual C++ version 5.0 or higher. The MKS Toolkit Fortran drivers work only with Absoft Fortran version 5.0 or higher. Support for Absoft Fortran version 7.0 was introduced in version 7.5 of PTC MKS Toolkit.

    We have also helped customers to successfully port Ada and COBOL applications.


What is the NuTCRACKER Platform?

    The NuTCRACKER Platform is the runtime component of MKS Toolkit that provides UNIX system-layer emulation in a Win32 environment. MKS Toolkit for Enterprise Developers and MKS Toolkit for Professional Developers include header files, libraries, and other SDK tools that support migration and deployment of UNIX applications which use the NuTCRACKER Platform and other runtime components.

    For more information, please refer to the datasheet (PDF) for the MKS Toolkit porting products runtime components.


How does the process of porting with MKS Toolkit work?

    The basic porting process is identical to porting your software to another UNIX platform. The following steps are discussed in detail in the section Developing Cross-Platform Solutions in the UNIX to Windows Porting Guide:

    • Examining make files, header files, and source code for porting issues.
    • Gaining access to the source code on Windows.
    • Compiling and linking.
    • Fixing linkage issues.
    • Debugging.
    • Integrating with Windows.
    • Distributing the application.


Will my existing UNIX build environment work with MKS Toolkit?

    Yes. MKS Toolkit porting products implement a full UNIX build environment on Windows. Many applications can be built simply by moving the source code to Windows and typing make. The MKS Toolkit product family has a number of shell environments, including C, Korn, and Bourne Again shells, make, lex, yacc, cpp, sed, awk, and all the utilities you need to migrate your UNIX build environment to Windows.


How can I move UNIX source to Windows?

    You have two choices:

    • copying the files from UNIX
    • sharing the files between the two systems.

    MKS Toolkit supports standard UNIX facilities for exchanging files between the two platforms, including rcp, scp, and secure FTP. In addition, Toolkit includes standard UNIX utilities for handling bulk file copies (cpio, pax, and tar). To share files, you can use either NFS or Samba.

    UNIX text files use a line-feed character to indicate the end of a line, while Windows expects both a carriage return and a line-feed in its text files. When you transfer text files to Windows, make sure their lines are properly terminated. Many transfer utilities have options to automatically handle the termination. In addition, you may find the flip command useful. More information is also available in the UNIX to Windows Porting Guide.


How much code requires modification during porting?

    This depends entirely on the nature of the application. Typically, customers modify less than one percent of their code, especially if the code has already been ported to more than one UNIX system. Porting to Windows with MKS Toolkit for Enterprise Developers is like porting to any flavor of UNIX. If you have already ported your application to other UNIX platforms, you have a good idea of what changes, if any, will be necessary to move to Windows.

    Naturally, you will have to rewrite non-portable sections of your code. For example, code that depends on system-specific resources, such as /dev/kmem or AIX's Journaling File System, will need to be rewritten.


What versions of make does MKS Toolkit support?

    MKS Toolkit for Developers includes a standard make utility. In addition to this, MKS Toolkit for Professional Developers and MKS Toolkit for Enterprise Developers also include the imake and the GNU make (gmake) utilities as examples of ported utilities. (The source for GNU make is in the Toolkit samples directory on the product CD.)

    In addition, Windows has its own make utility, nmake.


I have Ada code, do I have to do anything special?

    If your Ada application makes calls to C code (pragma Interface("C", …)) for system calls or X11/Motif, you may be able to follow the standalone DLL example in Building Standalone DLLs in the Porting Shared Libraries chapter of the UNIX to Windows Porting Guide.

    You would port your C code to Windows as a standalone NuTCRACKER Platform DLL and drive the DLL from your Ada code. Use the Ada linker to build the executable. Remember to consider the calling convention issues. The standalone DLL example is designed for use with Visual Basic, which requires the __stdcall convention. The Rational Ada compiler, for example, expects __cdecl.


Can I use Visual Studio to build ported applications, rather than using my existing UNIX build environment?

    Yes, refer to Using the Visual C++ IDE in the UNIX to Windows Porting Guide for details. You must use VC++ to build your application, but you have the choice of using the command line or Visual Studio IDE.

    For speed and reduction of the learning curve, we recommend that you perform your initial port from the command line as you have done on UNIX. Then, if you decide to migrate to Visual Studio, you can do it over time.


Does MKS Toolkit support Borland C/C++ or GNU C?

    The MKS build utilities (i.e. cc) will support any compiler as long as you tailor the .ccg and .mk files appropriately.

    MKS Toolkit porting products only support MS VC++ 5.0 and higher for migrating UNIX applications to Windows.


Can my ported application be implemented as a DLL?

    Yes, this is easy to do with the MKS Toolkit porting products. Refer to the Porting Shared Libraries section of the UNIX to Windows Porting Guide.


Is Motif available as a DLL?

    No, Motif is not available as a DLL. First, architectural problems on Windows prevent building a DLL that exports the widget data properly. Second, we cannot supply Motif to you as a DLL without requiring you to pay a substantial royalty on every copy that you ship to your customers. We continue to work on resolutions to both issues.


What debugger do I use with Toolkit?

    You can use any Microsoft VC++ compatible debugger. The two from Microsoft are the VC++ debugger msdev (or devenv in VC++ .NET), and windbg from the Windows SDK. There are also other commercially available debuggers.


Must I create project files to use the Microsoft debugger?

    No. There are several ways to launch the msdev debugger:

    • You can launch the debugger on an executable by typing msdev file.exe at the command line.

    • You can attach to a running program by typing msdev -p pid on a command line, where pid is the process ID of the running program (from the Task Manager or elsewhere).

    • You can attach to a running program by using the Task Manager; right click on the process in question and select Debug.

    • If a ported application calls the _NutDebugBreak() API, the standard Win32 debugging popup is displayed. Clicking Cancel on the popup launches the debugger and attaches it to the process.

    Note:
    In VC++ .NET the executable referenced as msdev above is called devenv.exe. In either case, the debugger binary is not necessarily on the PATH and it may be necessary to type in the full drive/directory/filename on the command line to launch it.


Do MKS Toolkit porting products support fork()?

    Yes, fork() and vfork() are supported, as are the exec*() family of functions, wait(), and waitpid(). In addition, MKS Toolkit porting products offer the _NutForkXXX() family of functions. For more information, refer to Windows Concepts in the UNIX to Windows Porting Guide.


Do MKS Toolkit porting products support UNIX signals?

    Yes, MKS Toolkit porting products implement UNIX signals, supporting both synchronous (e.g., access violation) and asynchronous (e.g., Ctrl-C) signal delivery, and interruption of system calls. In the vast majority of cases, Toolkit signals behave just like UNIX signals. You can use sigaction() to specify the disposition of the signal handler after handling a signal, so you can implement either SVR4 or BSD/POSIX semantics. Refer to Windows Concepts in the for more details.

    This table lists the UNIX signals and their default actions. This table defines how Toolkit maps Win32 exceptions to UNIX signals.

    Toolkit does not support job control signals.


Is MKS Toolkit thread safe?

    MKS Toolkit fully supports the POSIX Threads API, and the run time libraries are thread safe. Toolkit also provides emulation layers for Solaris and DCE threads. Refer to the Porting Threaded Applications chapter of the UNIX to Windows Porting Guide for more details.

    For details on specific functions, see the reference page for each function.


Do MKS Toolkit porting products support thread priorities?

    Yes, MKS Toolkit porting products provide a mechanism to change thread priorities. The APIs pthread_setschedparam(), getpriority(), setpriority(), and nice() are available.


Do MKS Toolkit porting products handle UNIX file and user security?

    Windows NT-based operating systems, including Win2000, XP and 2003, provide a C2-level security model, based on Access Control Lists and Access Rights. This security model is more restrictive than that of most UNIX systems. Windows 9x/Me have almost no security. MKS Toolkit porting products map UNIX user/group and file security models onto both these environments. Refer to Windows Concepts in the UNIX to Windows Porting Guide for more information.


Do MKS Toolkit porting products support setuid()?

    MKS Toolkit porting products implement setuid() by temporarily manipulating the discretionary access control lists (DACLs) of the objects created and accessed by a process. The full setuid() semantics cannot be implemented on Windows, because an arbitrary process cannot assume a different user identity without an account name/password challenge or appropriate client-server connection.


Do MKS Toolkit porting products handle UNIX file permissions?

    Yes, MKS Toolkit porting products map UNIX file permissions onto Win32. There is a substantial discussion in Windows Concepts in the UNIX to Windows Porting Guide.


Do MKS Toolkit porting products support UNIX file semantics?

    Yes, all UNIX file API calls are supported for all file systems supported by Windows NT-based operating systems: VFAT, NTFS, CDFS, HPFS, NFS, and NETBIOS shared. The file names can be up to 255 characters and mixed case, if supported by the underlying file system. MKS Toolkit porting products provide a mapping which lets the UNIX application see all drive letters as one large UNIX-like file system, without requiring changes in the UNIX application.


How does MKS Toolkit handle case-sensitivity of path and file names?

    Windows NTFS and VFAT file systems are case-preserving, while UNIX file systems are case-sensitive. On UNIX, you can have three files named Makefile, makefile, and MakeFile in the same directory. On Windows, you can have a file named Makefile, or one named makefile, or one named MakeFile, in a given directory, and the case of the name will be retained. You cannot, however, have more than one of these files in the same directory, because all three names will access the same file. This can be important when transferring files from UNIX to Windows. Refer to File Systems in the Windows Concepts chapter of the UNIX to Windows Porting Guide.


Do MKS Toolkit porting products support links?

    Windows NT 4.0 only supports hard links between files on locally-mounted NTFS file systems. Trying to link files on any other type of local file system, or on a network file system, will fail with errno set to EMLINK, specifying that the maximum number of links to the file has been exceeded. Windows 9x/Me does not support links.

    Under Windows 2000/XP/2003, Toolkit implements soft links (symbolic links) between directories on locally mounted NTFS 5.0 file systems, but soft links are not supported by the other operating systems or other file systems.


Can ported UNIX applications access files > 2G?

    Yes, MKS Toolkit porting products use unsigned 32-bit file offsets to let you access 4G for any individual file. NTFS on Windows allows files as large as 16 Exabytes (16 million Terabytes, specified by a 64-bit file offset). You will have to use Windows APIs to access files larger than 4G.


Can I port a device driver with MKS Toolkit porting products?

    No. MKS Toolkit porting products are designed for porting user-level applications, rather than kernel-level applications.


Do MKS Toolkit porting products support /dev/kmem? /dev/fd?

    MKS Toolkit porting products do not support /dev/kmem or other low-level, hardware-specific, or OS-specific devices. Consult the section Special Files in the Windows Concepts chapter of the UNIX to Windows Porting Guide for details about the many devices that Toolkit does support.

    MKS Toolkit porting products do not support /dev/fd.


Do MKS Toolkit porting products support sockets? AF_UNIX sockets?

    Yes, MKS Toolkit porting products implement the standard sockets API, based on the native Win32 Winsock 2.0 libraries (this is standard with Windows NT/2000/XP/2003, and distributed as part of the MKS Toolkit runtime components on Windows 9x/Me). Toolkit sockets are semantically the same as UNIX sockets, including support for out-of-band data and asynchronous I/O notification. Toolkit does not, however, support the TLI or XTI networking APIs.

    MKS Toolkit porting products supply a Winsock 2.0 service provider to implement the AF_UNIX address family. Applications ported to Windows with MKS Toolkit for Enterprise Developers should be able to make full use of the related API functions, including the use of sendmsg() and recvmsg() for passing file descriptors between applications. Native Win32 applications also can use AF_UNIX sockets, although they cannot use sendmsg() and recvmsg().


Do MKS Toolkit porting products support IPCs?

    MKS Toolkit porting products support the standard System V Interprocess Communications (IPC) mechanisms (shared memory, semaphores, and message queues) by building on Win32 system objects. These facilities are persistent (i.e., retained even when no Toolkit process is running), and the standard security attributes are supported (restricted on Windows 9x/Me by the lack of security). Parameters related to these facilities can be adjusted using the MKS Toolkit Control Panel applet.


Do MKS Toolkit porting products support FIFOs?

    Yes, MKS Toolkit porting products implement FIFOs that are compatible with standard UNIX implementations. Toolkit lets you access FIFOs according to the POSIX specification (mkfifo(), mknod(), open(), read(), write(), select(),…). In particular you can use select() to block until a FIFO is available for reading or writing, regardless of its connection state.


Do MKS Toolkit porting products support pipe()? What are named pipes?

    Yes, MKS Toolkit porting products support pipe().

    Win32 defines a named pipe, which is entirely different from a UNIX FIFO. Win32 named pipes let multiple clients establish bidirectional communications to a single server application, each with its own pair of buffers. The clients and server can be on different machines.

    You can access Win32 named pipes with open("//server/pipe/<pipe name>"). Opening the pipe with the O_CREAT option makes the process a server for the named pipe; opening without O_CREAT makes the process a client of the named pipe. Windows 9x/Me only supports client-side named pipe connections; Windows NT-based operating systems support either client or server named pipe connections.


Do MKS Toolkit porting products support shared memory and memory mapping?

    Yes, MKS Toolkit porting products support the standard System V Interprocess Communications (IPC) mechanisms including shared memory (shmat(), shmctl(), shmdt(), shmget()). It also includes standard memory mapping APIs (mmap(), munmap(), etc.).


Do MKS Toolkit porting products support X11 and Motif?

    Yes, MKS Toolkit for Enterprise Developers includes X11R6.3 and Motif 2.1.


Do MKS Toolkit ported applications require the use of an X server for X11 applications?

    Yes, X11 client applications ported with MKS Toolkit behave just like they do on UNIX, including making use of an X server. Both MKS Toolkit for Interoperability and MKS Toolkit for Enterprise Developers contain an X server and there are several runtime options for providing an X server with your ported application.


Do MKS Toolkit porting products support XView or OpenLook?


Do MKS Toolkit porting products support OpenGL?

    Yes, MKS Toolkit for Enterprise Developers contains OpenGL header files, libraries, and DLLs. In addition, we also offer the Hummingbird OpenGL Development Option for those customers who want to use Hummingbird's Exceed X server and Exceed 3D for OpenGL.


Do MKS Toolkit porting products support public domain and third-party graphic libraries such as Hoops?

    X11/Motif add-on libraries, such as the XRT widgets from Sitraka, must be built with Toolkit. Most major vendors have Toolkit versions available directly or from MKS. Contact your sales representative for additional information.

    For non-X11/Motif graphic libraries (such database access libraries), either a native Win32 version or a Toolkit-ported version must be available on Windows. Most are available today as Win32 versions, directly from their vendors – just make sure that you use the DLL version.


Is it possible to have native Windows help inside my ported application?

    Yes, Windows provides a one call interface, WinHelp(), which can be used from within your MKS Toolkit ported application. You must first use the Microsoft help compiler to define and compile your help text into a .HLP file. WinHelp() can then launch the external viewer from within your application.

    Notes:

    • Pass NULL as the first parameter

    • Do not include

    • do link with user32.lib

    Example:

      #include
      ...
      /*
      * Display the contents section of the help file.
      */
      WinHelp( NULL, "myhelp.hlp", HELP_CONTENTS, 0 );
      /*
      * Display a specific item from your help file.
      */
      WinHelp( NULL, "myhelp.hlp", HELP_KEY, "TopicA" );
      /*
      * Close the external help viewer.
      */
      WinHelp( NULL, "myhelp.hlp", HELP_QUIT, 0 );


Do MKS Toolkit porting products include a terminal interface for consoles and serial lines?

    Yes, MKS Toolkit porting products have a terminal emulator (like VT100) and it provides support for termcap, terminfo, and termios. It also supports serial lines via COM ports. The ioctl() API is supported for most commands. Serial ports look like ttys to ported UNIX code, e.g., open("/dev/com/1", O_RDWR).


Do MKS Toolkit porting products support curses programs?

    Yes, MKS Toolkit for Enterprise Developers supports curses with colours.


Do MKS Toolkit porting products provide a pseudo-terminal interface?

    No, MKS Toolkit porting products do not support pseudo-terminals.


Do MKS Toolkit porting products support the remote APIs like rexec() and rcmd()?

    Yes, MKS Toolkit porting products support the remote APIs rexec() and rcmd().


Do MKS Toolkit porting products support XDR and RPCs?


Can I use the Microsoft Profiler, Intel's V-Tune, or Rational's Quantify for performance testing of ported applications?

    Yes. We have successfully used these tools at MKS, but none of them readily follow calls to fork() in the program.


Do MKS Toolkit porting products support migrating database applications, such as Oracle, Sybase, or Informix?

    Yes. Just purchase the appropriate vendor's client libraries (DLL for Win32 version) and link them with your ported UNIX application.


Which mainstream third-party UNIX libraries are currently implemented for Windows?

    Virtually all (99%) are available as Win32 libraries and can be used with MKS Toolkit porting products.


Are Windows errors mapped into UNIX errno?

    Yes, MKS Toolkit porting products map Win32 errno codes to a corresponding UNIX errno value whenever possible. When no valid mapping exists, errno is set to the negative of the Win32 error code. Your code must allow negative errno values. For example, directly accessing sys_errlist[errno] without validating that errno is positive can cause an access violation. You should always use strerror() in preference to sys_errlist[], because it will return the Windows error message for any error code that does not map to a UNIX error code.

    Toolkit also supports h_errno, for networking name-resolution functions (such as gethostbyname()), by mapping Winsock error codes as needed.

    Toolkit provides a perror command, which takes an error number as an argument. This command interactively displays error messages corresponding to UNIX errno values (a positive number as an argument), or Windows error codes (a negative number as an argument). perror() is also available as an API.

    This table shows the mapping of Windows error codes to errno values.


Deployment

What files do I need to redistribute with my ported UNIX application?

    Some NuTCRACKER Workstation components must be installed along with your application. The set of UNIX compatibility components that will be required depends on what Toolkit options are being used by your product. The Deployment Wizard (on the Toolkit Start menu) is used to select the components needed by your product, and will stage all of the redistributable components needed for your distribution. The MKS Toolkit Resource Kit contains an InstallShield tutorial to help deploy a ported application. Refer to Deploying NuTCRACKER Platform Applications in the UNIX to Windows Porting Guide.