getpid в COBOL на платформе Windows
Как получить идентификатор процесса или идентификатор родительского процесса через код COBOL, работающий на платформе Windows?
2 ответа
Я отвечаю за GNU Cobol, ранее OpenCOBOL.
Существует CALL "C$GETPID" ВОЗВРАЩАЮЩЕЕ целочисленное значение END-CALL
как часть стоковой библиотеки. В основном это вызывает getpid() или _getpid()
Если вы не связываетесь со стандартными библиотеками C, но имеете доступ к Kernel32.dll, WinAPI имеет GetCurrentProcessId()
Предполагая Micro Focus COBOL, Google получит вас http://community.microfocus.com/microfocus/cobol/net_express__server_express/w/knowledge_base/6539.obtaining-the-process-id-for-cobol-application.aspx
Как пользователь Micro Focus COBOL, вы можете получить поддержку входа в систему и связаться с ними / их сообществом.
Ссылка предлагает простой CALL для стандартной функции C getpid.
Obtaining the process ID for COBOL application
This article explains how to capture the process ID for the currently running COBOL application.
Problem:
How can the process ID (PID) within a running COBOL program be captured?
Resolution:
To capture the process ID for a currently running COBOL application, you can code a COBOL CALL statement to use the system function getpid(). The standard C libraries contain the function getpid(), which can easily be called/used from within a COBOL program.
Sample COBOL code fragments
Sample program fragment
Include the ctypes copy file from within the COBOL product directory as the first line in the COBOL program.
copy '$COBDIR/demo/c-cobol/ctypes.cpy'
WORKING-STORAGE SECTION
DATA DIVISION
Define the data item where the process id should be returned
01 current-pid long
PROCEDURE DIVISION
Call 'getpid' returning current-pid
The returned integer can be used as a part of temporary filenames, or to identify log file entries etc.
Old KB# 14408