ps_shared_lib_users: List all processes that loaded a shared library

Description Usage Arguments Details Value See Also Examples

View source: R/system.R


List all processes that loaded a shared library





Character vector of paths of shared libraries to look up. They must be absolute paths. They don't need to exist. Forward slashes are converted to backward slashes on Windows, and the output will always have backward slashes in the paths.


Character scalar or NULL. If not NULL, then only the processes of this user are considered. It defaults to the current user.


Character vector or NULL. If not NULL, then it is a vector of glob expressions, used to filter the process names.



This function currently only works on Windows.

On Windows, a 32 bit R process can only list other 32 bit processes. Similarly, a 64 bit R process can only list other 64 bit processes. This is a limitation of the Windows API.

Even though Windows file systems are (almost always) case insensitive, the matching of paths, user and also filter are case sensitive. This might change in the future.

This function can be very slow on Windows, because it needs to enumerate all shared libraries of all processes in the system, unless the filter argument is set. Make sure you set filter if you can.

If you want to look up multiple shared libraries, list all of them in paths, instead of calling ps_shared_lib_users for each individually.

If you are after libraries loaded by R processes, you might want to set filter to c("Rgui.exe", "Rterm.exe", "rsession.exe") The last one is for RStudio.


A data frame (tibble) with columns:

See Also

Other shared library tools: ps_shared_libs()


dlls <- vapply(getLoadedDLLs(), "[[", character(1), "path")
psdll <- dlls[["ps"]][[1]]
r_procs <- c("Rgui.exe", "Rterm.exe", "rsession.exe")
ps_shared_lib_users(psdll, filter = r_procs)

ps documentation built on March 1, 2021, 1:06 a.m.