pathmgr_symlink()

QNX SDP8.0C Library ReferenceAPIDeveloper

Create a procmgr symlink

Synopsis:

#include <sys/pathmgr.h>

int pathmgr_symlink( const char * path,
                     const char * symlink );

Arguments:

path
The path that you want to link to.
symlink
The name of the link that you want to create.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The pathmgr_symlink() function creates a symbolic link in the process manager (procmgr symlink) that redirects to the path specified by path.

To create the link, your process must have the PROCMGR_AID_PATHSPACE ability. If security policies are in use, its type must have an allow_link rule that specifies the path where the symlink is created. For more information, go to procmgr_ability(), and Security policy language in the QNX OS System Security Guide.

The pathmgr_unlink() function removes the link.

Note:
  • The procmgr symlink isn't persistent and is lost when the system reboots.
  • Mixing procmgr symlinks with filesystem symlinks, or having a procmgr symlink to a directory that's a procmgr symlink to somewhere else, can result in some surprising results. For more information, see Links and inodes in the Working with Filesystems chapter of the QNX OS User's Guide.

Returns:

0
Success.
-1
An error occurred (errno is set).

Errors:

EACCES
Security policies are in use and there is no rule to permit the use of that path.
EBUSY
A procmgr symlink of the given name already exists.
ENOMEM
There isn't enough free memory to complete the operation.
EPERM
The calling process doesn't have the required permission; see procmgr_ability().

Examples:

#include <stdio.h>
#include <sys/pathmgr.h>

int main(int argc, char **argv) {

    /* Create a link from /mytmp to /dev/shmem */
    if(pathmgr_symlink("/dev/shmem", "/mytmp") == -1) {
            perror("Can't make link");
    }

    getchar();
    if(pathmgr_unlink("/mytmp") == -1) {
            perror("Can't unlink ");
    }

    return 0;
}

Classification:

QNX OS

Safety:
Cancellation pointYes
Signal handlerYes
ThreadYes
Page updated: