UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FUnixPlatformProcess Struct Reference

#include <UnixPlatformProcess.h>

+ Inheritance diagram for FUnixPlatformProcess:

Classes

class  FProcEnumerator
 
struct  FProcEnumInfo
 

Static Public Member Functions

static CORE_API voidGetDllHandle (const TCHAR *Filename)
 
static CORE_API void FreeDllHandle (void *DllHandle)
 
static CORE_API voidGetDllExport (void *DllHandle, const TCHAR *ProcName)
 
static CORE_API const TCHARComputerName ()
 
static CORE_API const TCHARUserName (bool bOnlyAlphaNumeric=true)
 
static CORE_API const TCHARUserTempDir ()
 
static CORE_API const TCHARUserDir ()
 
static CORE_API const TCHARUserSettingsDir ()
 
static CORE_API const TCHARApplicationSettingsDir ()
 
static CORE_API FString GetApplicationSettingsDir (const ApplicationSettingsContext &Settings)
 
static CORE_API void SetCurrentWorkingDirectoryToBaseDir ()
 
static CORE_API FString GetCurrentWorkingDirectory ()
 
static CORE_API FString GenerateApplicationPath (const FString &AppName, EBuildConfiguration BuildConfiguration)
 
static CORE_API FString GetApplicationName (uint32 ProcessId)
 
static CORE_API bool SetProcessLimits (EProcessResource::Type Resource, uint64 Limit)
 
static CORE_API const TCHARExecutablePath ()
 
static CORE_API const TCHARExecutableName (bool bRemoveExtension=true)
 
static CORE_API const TCHARGetModulePrefix ()
 
static CORE_API const TCHARGetModuleExtension ()
 
static CORE_API void ClosePipe (void *ReadPipe, void *WritePipe)
 
static CORE_API bool CreatePipe (void *&ReadPipe, void *&WritePipe, bool bWritePipeLocal=false)
 
static CORE_API FString ReadPipe (void *ReadPipe)
 
static CORE_API bool ReadPipeToArray (void *ReadPipe, TArray< uint8 > &Output)
 
static CORE_API bool WritePipe (void *WritePipe, const FString &Message, FString *OutWritten=nullptr)
 
static CORE_API bool WritePipe (void *WritePipe, const uint8 *Data, const int32 DataLength, int32 *OutDataLength=nullptr)
 
static CORE_API class FRunnableThreadCreateRunnableThread ()
 
static CORE_API const FString GetModulesDirectory ()
 
static CORE_API bool CanLaunchURL (const TCHAR *URL)
 
static CORE_API void LaunchURL (const TCHAR *URL, const TCHAR *Parms, FString *Error)
 
static CORE_API FProcHandle CreateProc (const TCHAR *URL, const TCHAR *Parms, bool bLaunchDetached, bool bLaunchHidden, bool bLaunchReallyHidden, uint32 *OutProcessID, int32 PriorityModifier, const TCHAR *OptionalWorkingDirectory, void *PipeWriteChild, void *PipeReadChild=nullptr)
 
static CORE_API FProcHandle CreateProc (const TCHAR *URL, const TCHAR *Parms, bool bLaunchDetached, bool bLaunchHidden, bool bLaunchReallyHidden, uint32 *OutProcessID, int32 PriorityModifier, const TCHAR *OptionalWorkingDirectory, void *PipeWriteChild, void *PipeReadChild, void *PipeStdErrChild)
 
static CORE_API TTuple< FProcHandle, UE::HAL::EProcessIdCreateProc (const UE::HAL::FProcessStartInfo &StartInfo)
 
static CORE_API FProcHandle OpenProcess (uint32 ProcessID)
 
static CORE_API bool IsProcRunning (FProcHandle &ProcessHandle)
 
static CORE_API void WaitForProc (FProcHandle &ProcessHandle)
 
static CORE_API void CloseProc (FProcHandle &ProcessHandle)
 
static CORE_API void TerminateProc (FProcHandle &ProcessHandle, bool KillTree=false)
 
static CORE_API EWaitAndForkResult WaitAndFork ()
 
static CORE_API uint32 GetCurrentProcessId ()
 
static CORE_API uint32 GetCurrentCoreNumber ()
 
static CORE_API bool GetProcReturnCode (FProcHandle &ProcHandle, int32 *ReturnCode)
 
static CORE_API bool Daemonize ()
 
static CORE_API bool IsApplicationRunning (uint32 ProcessId)
 
static CORE_API bool IsApplicationRunning (const TCHAR *ProcName)
 
static CORE_API bool ExecProcess (const TCHAR *URL, const TCHAR *Params, int32 *OutReturnCode, FString *OutStdOut, FString *OutStdErr, const TCHAR *OptionalWorkingDirectory=NULL, bool bShouldEndWithParentProcess=false)
 
static CORE_API void ExploreFolder (const TCHAR *FilePath)
 
static CORE_API bool LaunchFileInDefaultExternalApplication (const TCHAR *FileName, const TCHAR *Parms=NULL, ELaunchVerb::Type Verb=ELaunchVerb::Open, bool bPromptToOpenOnFailure=true)
 
static CORE_API void OnChildEndFramePostFork ()
 
static CORE_API int32 TranslateThreadPriority (EThreadPriority Priority)
 
static CORE_API void SetThreadNiceValue (uint32_t ThreadId, int32 NiceValue)
 
static CORE_API void SetThreadPriority (EThreadPriority NewPriority)
 
static CORE_API bool GetPerFrameProcessorUsage (uint32 ProcessId, float &ProcessUsageFraction, float &IdleUsageFraction)
 
static CORE_API const TCHARUserHomeDir ()
 Returns user home directory (i.e. $HOME).
 
- Static Public Member Functions inherited from FPosixOSPlatformProcess
static CORE_API bool IsFirstInstance ()
 
static CORE_API void CeaseBeingFirstInstance ()
 
static CORE_API TSharedPtr< IProcessSentinelCreateProcessSentinelObject ()
 
- Static Public Member Functions inherited from FGenericPlatformProcess
static CORE_API voidGetDllHandle (const TCHAR *Filename)
 
static CORE_API void FreeDllHandle (void *DllHandle)
 
static CORE_API voidGetDllExport (void *DllHandle, const TCHAR *ProcName)
 
static UE_FORCEINLINE_HINT void AddDllDirectory (const TCHAR *Directory)
 
static UE_FORCEINLINE_HINT void PushDllDirectory (const TCHAR *Directory)
 
static UE_FORCEINLINE_HINT void PopDllDirectory (const TCHAR *Directory)
 
static UE_FORCEINLINE_HINT void GetDllDirectories (TArray< FString > &OutDllDirectories)
 
static CORE_API uint32 GetCurrentProcessId ()
 
static CORE_API uint32 GetCurrentCoreNumber ()
 
static bool GetPerFrameProcessorUsage (uint32 ProcessId, float &ProcessUsageFraction, float &IdleUsageFraction)
 
static CORE_API void SetThreadAffinityMask (uint64 AffinityMask)
 
static CORE_API void SetThreadPriority (EThreadPriority NewPriority)
 
static void SetThreadName (const TCHAR *ThreadName)
 
static CORE_API uint32 GetStackSize ()
 
static void DumpThreadInfo (const TCHAR *MarkerName)
 
static void SetupGameThread ()
 
static void SetupRenderThread ()
 
static void SetupAudioThread ()
 
static void TeardownAudioThread ()
 
static CORE_API bool ShouldSaveToUserDir ()
 
static CORE_API const TCHARBaseDir ()
 
static CORE_API const TCHARUserDir ()
 
static CORE_API const TCHARUserSettingsDir ()
 
static CORE_API const TCHARUserTempDir ()
 
static CORE_API const TCHARUserHomeDir ()
 
static CORE_API const TCHARApplicationSettingsDir ()
 
static CORE_API FString GetApplicationSettingsDir (const ApplicationSettingsContext &Settings)
 
static CORE_API const TCHARComputerName ()
 
static CORE_API const TCHARUserName (bool bOnlyAlphaNumeric=true)
 
static CORE_API const TCHARShaderDir ()
 
static CORE_API void SetShaderDir (const TCHAR *Where)
 
static CORE_API void SetCurrentWorkingDirectoryToBaseDir ()
 
static CORE_API FString GetCurrentWorkingDirectory ()
 
static bool SetProcessLimits (EProcessResource::Type Resource, uint64 Limit)
 
static CORE_API const FString ShaderWorkingDir ()
 
static CORE_API void CleanShaderWorkingDir ()
 
static CORE_API const TCHARExecutablePath ()
 
static CORE_API const TCHARExecutableName (bool bRemoveExtension=true)
 
static CORE_API FString GenerateApplicationPath (const FString &AppName, EBuildConfiguration BuildConfiguration)
 
static CORE_API const TCHARGetArchitectureSuffix ()
 
static CORE_API const TCHARGetModulePrefix ()
 
static CORE_API const TCHARGetModuleExtension ()
 
static CORE_API const TCHARGetBinariesSubdirectory ()
 
static CORE_API const FString GetModulesDirectory ()
 
static CORE_API bool ModuleExists (const FString &Filename)
 
static CORE_API void LaunchURL (const TCHAR *URL, const TCHAR *Parms, FString *Error)
 
static CORE_API bool LaunchURLFiltered (const TCHAR *URL, const TCHAR *Parms, FString *Error, const UE::Core::FURLRequestFilter &Filter)
 
static CORE_API bool CanLaunchURL (const TCHAR *URL)
 
static CORE_API FString GetGameBundleId ()
 
static CORE_API FProcHandle CreateProc (const TCHAR *URL, const TCHAR *Parms, bool bLaunchDetached, bool bLaunchHidden, bool bLaunchReallyHidden, uint32 *OutProcessID, int32 PriorityModifier, const TCHAR *OptionalWorkingDirectory, void *PipeWriteChild, void *PipeReadChild=nullptr)
 
static CORE_API FProcHandle CreateProc (const TCHAR *URL, const TCHAR *Parms, bool bLaunchDetached, bool bLaunchHidden, bool bLaunchReallyHidden, uint32 *OutProcessID, int32 PriorityModifier, const TCHAR *OptionalWorkingDirectory, void *PipeWriteChild, void *PipeReadChild, void *PipeStdErrChild)
 
static CORE_API TTuple< FProcHandle, UE::HAL::EProcessIdCreateProc (const UE::HAL::FProcessStartInfo &StartInfo)
 
static CORE_API FProcHandle OpenProcess (uint32 ProcessID)
 
static CORE_API bool IsProcRunning (FProcHandle &ProcessHandle)
 
static CORE_API void WaitForProc (FProcHandle &ProcessHandle)
 
static CORE_API void CloseProc (FProcHandle &ProcessHandle)
 
static CORE_API void TerminateProc (FProcHandle &ProcessHandle, bool KillTree=false)
 
static CORE_API void TerminateProcTreeWithPredicate (FProcHandle &ProcessHandle, TFunctionRef< bool(uint32 ProcessId, const TCHAR *ApplicationName)> Predicate)
 
static CORE_API EWaitAndForkResult WaitAndFork ()
 
static CORE_API bool GetProcReturnCode (FProcHandle &ProcHandle, int32 *ReturnCode)
 
static CORE_API bool IsApplicationRunning (uint32 ProcessId)
 
static CORE_API bool IsApplicationRunning (const TCHAR *ProcName)
 
static CORE_API FString GetApplicationName (uint32 ProcessId)
 
static CORE_API bool GetApplicationMemoryUsage (uint32 ProcessId, SIZE_T *OutMemoryUsage)
 
static CORE_API bool ExecProcess (const TCHAR *URL, const TCHAR *Params, int32 *OutReturnCode, FString *OutStdOut, FString *OutStdErr, const TCHAR *OptionalWorkingDirectory=NULL, bool bShouldEndWithParentProcess=false)
 
static CORE_API bool ExecElevatedProcess (const TCHAR *URL, const TCHAR *Params, int32 *OutReturnCode)
 
static CORE_API bool LaunchFileInDefaultExternalApplication (const TCHAR *FileName, const TCHAR *Parms=NULL, ELaunchVerb::Type Verb=ELaunchVerb::Open, bool bPromptToOpenOnFailure=true)
 
static CORE_API void ExploreFolder (const TCHAR *FilePath)
 
static CORE_API void ConditionalSleep (TFunctionRef< bool()> Condition, float SleepTime=0.0f)
 
static CORE_API class FEventCreateSynchEvent (bool bIsManualReset=false)
 
static CORE_API class FEventGetSynchEventFromPool (bool bIsManualReset=false)
 
static CORE_API void FlushPoolSyncEvents ()
 
static CORE_API void ReturnSynchEventToPool (FEvent *Event)
 
static CORE_API class FRunnableThreadCreateRunnableThread ()
 
static CORE_API void ClosePipe (void *ReadPipe, void *WritePipe)
 
static CORE_API bool CreatePipe (void *&ReadPipe, void *&WritePipe, bool bWritePipeLocal=false)
 
static CORE_API FString ReadPipe (void *ReadPipe)
 
static CORE_API bool ReadPipeToArray (void *ReadPipe, TArray< uint8 > &Output)
 
static CORE_API bool WritePipe (void *WritePipe, const FString &Message, FString *OutWritten=nullptr)
 
static CORE_API bool WritePipe (void *WritePipe, const uint8 *Data, const int32 DataLength, int32 *OutDataLength=nullptr)
 
static CORE_API bool SupportsMultithreading ()
 
static CORE_API FSemaphoreNewInterprocessSynchObject (const FString &Name, bool bCreate, uint32 MaxLocks=1)
 
static CORE_API FSemaphoreNewInterprocessSynchObject (const TCHAR *Name, bool bCreate, uint32 MaxLocks=1)
 
static CORE_API bool DeleteInterprocessSynchObject (FSemaphore *Object)
 
static CORE_API bool Daemonize ()
 
static CORE_API bool IsFirstInstance ()
 
static CORE_API void CeaseBeingFirstInstance ()
 
static CORE_API void TearDown ()
 
static bool SkipWaitForStats ()
 
static bool TryGetMemoryUsage (FProcHandle &ProcessHandle, FPlatformProcessMemoryStats &OutStats)
 
static CORE_API ENamedThreads::Type GetDesiredThreadForUObjectReferenceCollector ()
 
static CORE_API void ModifyThreadAssignmentForUObjectReferenceCollector (int32 &NumThreads, int32 &NumBackgroundThreads, ENamedThreads::Type &NormalThreadName, ENamedThreads::Type &BackgroundThreadName)
 
static CORE_API TSharedPtr< IProcessSentinelCreateProcessSentinelObject ()
 
static CORE_API TSharedPtr< IProcessSentinelCreateProcessSentinel (const TCHAR *Name, const FString &Contents)
 
static void Yield ()
 
static void YieldCycles (uint64 Cycles)
 

Additional Inherited Members

- Public Types inherited from FGenericPlatformProcess
enum class  EWaitAndForkResult : uint8 { Error , Parent , Child }
 

Detailed Description

Unix implementation of the Process OS functions

Member Function Documentation

◆ ApplicationSettingsDir()

const TCHAR * FUnixPlatformProcess::ApplicationSettingsDir ( )
static

◆ CanLaunchURL()

bool FUnixPlatformProcess::CanLaunchURL ( const TCHAR URL)
static

◆ ClosePipe()

void FUnixPlatformProcess::ClosePipe ( void ReadPipe,
void WritePipe 
)
static

◆ CloseProc()

void FUnixPlatformProcess::CloseProc ( FProcHandle ProcessHandle)
static

◆ ComputerName()

const TCHAR * FUnixPlatformProcess::ComputerName ( )
static

◆ CreatePipe()

bool FUnixPlatformProcess::CreatePipe ( void *&  ReadPipe,
void *&  WritePipe,
bool  bWritePipeLocal = false 
)
static

◆ CreateProc() [1/3]

FProcHandle FUnixPlatformProcess::CreateProc ( const TCHAR URL,
const TCHAR Parms,
bool  bLaunchDetached,
bool  bLaunchHidden,
bool  bLaunchReallyHidden,
uint32 OutProcessID,
int32  PriorityModifier,
const TCHAR OptionalWorkingDirectory,
void PipeWriteChild,
void PipeReadChild,
void PipeStdErrChild 
)
static

◆ CreateProc() [2/3]

FProcHandle FUnixPlatformProcess::CreateProc ( const TCHAR URL,
const TCHAR Parms,
bool  bLaunchDetached,
bool  bLaunchHidden,
bool  bLaunchReallyHidden,
uint32 OutProcessID,
int32  PriorityModifier,
const TCHAR OptionalWorkingDirectory,
void PipeWriteChild,
void PipeReadChild = nullptr 
)
static

◆ CreateProc() [3/3]

TTuple< FProcHandle, UE::HAL::EProcessId > FUnixPlatformProcess::CreateProc ( const UE::HAL::FProcessStartInfo StartInfo)
static

◆ CreateRunnableThread()

FRunnableThread * FUnixPlatformProcess::CreateRunnableThread ( )
static

◆ Daemonize()

bool FUnixPlatformProcess::Daemonize ( )
static

◆ ExecProcess()

bool FUnixPlatformProcess::ExecProcess ( const TCHAR URL,
const TCHAR Params,
int32 OutReturnCode,
FString *  OutStdOut,
FString *  OutStdErr,
const TCHAR OptionalWorkingDirectory = NULL,
bool  bShouldEndWithParentProcess = false 
)
static

◆ ExecutableName()

const TCHAR * FUnixPlatformProcess::ExecutableName ( bool  bRemoveExtension = true)
static

◆ ExecutablePath()

const TCHAR * FUnixPlatformProcess::ExecutablePath ( )
static

◆ ExploreFolder()

void FUnixPlatformProcess::ExploreFolder ( const TCHAR FilePath)
static

◆ FreeDllHandle()

void FUnixPlatformProcess::FreeDllHandle ( void DllHandle)
static

◆ GenerateApplicationPath()

FString FUnixPlatformProcess::GenerateApplicationPath ( const FString &  AppName,
EBuildConfiguration  BuildConfiguration 
)
static

◆ GetApplicationName()

FString FUnixPlatformProcess::GetApplicationName ( uint32  ProcessId)
static

◆ GetApplicationSettingsDir()

FString FUnixPlatformProcess::GetApplicationSettingsDir ( const ApplicationSettingsContext Settings)
static

◆ GetCurrentCoreNumber()

uint32 FUnixPlatformProcess::GetCurrentCoreNumber ( )
static

◆ GetCurrentProcessId()

uint32 FUnixPlatformProcess::GetCurrentProcessId ( )
static

◆ GetCurrentWorkingDirectory()

FString FUnixPlatformProcess::GetCurrentWorkingDirectory ( )
static

◆ GetDllExport()

void * FUnixPlatformProcess::GetDllExport ( void DllHandle,
const TCHAR ProcName 
)
static

◆ GetDllHandle()

void * FUnixPlatformProcess::GetDllHandle ( const TCHAR Filename)
static

◆ GetModuleExtension()

const TCHAR * FUnixPlatformProcess::GetModuleExtension ( )
static

◆ GetModulePrefix()

const TCHAR * FUnixPlatformProcess::GetModulePrefix ( )
static

◆ GetModulesDirectory()

const FString FUnixPlatformProcess::GetModulesDirectory ( )
static

◆ GetPerFrameProcessorUsage()

bool FUnixPlatformProcess::GetPerFrameProcessorUsage ( uint32  ProcessId,
float ProcessUsageFraction,
float IdleUsageFraction 
)
static

◆ GetProcReturnCode()

bool FUnixPlatformProcess::GetProcReturnCode ( FProcHandle ProcHandle,
int32 ReturnCode 
)
static

◆ IsApplicationRunning() [1/2]

bool FUnixPlatformProcess::IsApplicationRunning ( const TCHAR ProcName)
static

◆ IsApplicationRunning() [2/2]

bool FUnixPlatformProcess::IsApplicationRunning ( uint32  ProcessId)
static

◆ IsProcRunning()

bool FUnixPlatformProcess::IsProcRunning ( FProcHandle ProcessHandle)
static

◆ LaunchFileInDefaultExternalApplication()

bool FUnixPlatformProcess::LaunchFileInDefaultExternalApplication ( const TCHAR FileName,
const TCHAR Parms = NULL,
ELaunchVerb::Type  Verb = ELaunchVerb::Open,
bool  bPromptToOpenOnFailure = true 
)
static

◆ LaunchURL()

void FUnixPlatformProcess::LaunchURL ( const TCHAR URL,
const TCHAR Parms,
FString *  Error 
)
static

◆ OnChildEndFramePostFork()

void FUnixPlatformProcess::OnChildEndFramePostFork ( )
static

◆ OpenProcess()

FProcHandle FUnixPlatformProcess::OpenProcess ( uint32  ProcessID)
static

◆ ReadPipe()

FString FUnixPlatformProcess::ReadPipe ( void ReadPipe)
static

◆ ReadPipeToArray()

bool FUnixPlatformProcess::ReadPipeToArray ( void ReadPipe,
TArray< uint8 > &  Output 
)
static

◆ SetCurrentWorkingDirectoryToBaseDir()

void FUnixPlatformProcess::SetCurrentWorkingDirectoryToBaseDir ( )
static

◆ SetProcessLimits()

bool FUnixPlatformProcess::SetProcessLimits ( EProcessResource::Type  Resource,
uint64  Limit 
)
static

◆ SetThreadNiceValue()

void FUnixPlatformProcess::SetThreadNiceValue ( uint32_t  ThreadId,
int32  NiceValue 
)
static

◆ SetThreadPriority()

void FUnixPlatformProcess::SetThreadPriority ( EThreadPriority  NewPriority)
static

◆ TerminateProc()

void FUnixPlatformProcess::TerminateProc ( FProcHandle ProcessHandle,
bool  KillTree = false 
)
static

◆ TranslateThreadPriority()

int32 FUnixPlatformProcess::TranslateThreadPriority ( EThreadPriority  Priority)
static

◆ UserDir()

const TCHAR * FUnixPlatformProcess::UserDir ( )
static

◆ UserHomeDir()

const TCHAR * FUnixPlatformProcess::UserHomeDir ( )
static

Returns user home directory (i.e. $HOME).

Like other directory functions, cannot return nullptr!

◆ UserName()

const TCHAR * FUnixPlatformProcess::UserName ( bool  bOnlyAlphaNumeric = true)
static

◆ UserSettingsDir()

const TCHAR * FUnixPlatformProcess::UserSettingsDir ( )
static

◆ UserTempDir()

const TCHAR * FUnixPlatformProcess::UserTempDir ( )
static

◆ WaitAndFork()

FGenericPlatformProcess::EWaitAndForkResult FUnixPlatformProcess::WaitAndFork ( )
static

◆ WaitForProc()

void FUnixPlatformProcess::WaitForProc ( FProcHandle ProcessHandle)
static

◆ WritePipe() [1/2]

bool FUnixPlatformProcess::WritePipe ( void WritePipe,
const FString &  Message,
FString *  OutWritten = nullptr 
)
static

◆ WritePipe() [2/2]

bool FUnixPlatformProcess::WritePipe ( void WritePipe,
const uint8 Data,
const int32  DataLength,
int32 OutDataLength = nullptr 
)
static

The documentation for this struct was generated from the following files: