Home
Developer Resources
QNX RTOS v4
QNX RTOS v4 Knowledge Base

QNX RTOS v4 Knowledge Base

Foundry27
Foundry27
QNX RTOS v4 project
Resources

QNX RTOS v4 Knowledge Base

Title How do I know where my executables are being loaded from?
Ref. No. QNX.000009305
Category(ies) Network, Development, Configuration
Issue I find my networked filesystem so transparent that sometimes I'm not even sure where executables are being loaded from! How do I get a better sense of where things are?
Solution The fsys_get_mount dev() function returns the physical device that a file resides on. Using this function, I've created my own whereis utility. For example, if you typed whereis /usr/spool, you'd see output similar to:

x09/usr/spool is on //18/dev/hd0t77

and if you typed whereis 'which windows' you'd see output similar to:

x09/usr/bin/windows is on //107/dev/hd0t77

x09If you use this command in conjunction with mountlist, you can find out where everything is. For example, if you typed mountlist -n107, you'd see:

x09/dev/hd0t77 mounted as //107/

Here's the source for whereis:

//whereis.c

#include <stdio.h>
#include <limits.h>
#include <sys/fsys.h>

main( int argc, char *argv[] ){
x09char buffer[ _POSIX_NAME_MAX ];
x09x09if ( fsys_get_mount_dev ( argv[1], buffer ) == 0 )
x09x09printf ( "%s is on %sn", argv[1], buffer );

x09else
x09// couldn't resolve ( file/dir doesn't exit, or nonroot mountpoint )
x09printf ( "don't know... try mountlistn");
}