Please enter search query.
Search <book_title>...
Cluster Server 8.0.1 Agent Developer's Guide - Windows
Last Published:
2022-05-19
Product(s):
InfoScale & Storage Foundation (8.0.1)
Platform: Windows
- Introduction
- Agent entry point overview
- About agent entry points
- Agent entry points described
- About the action entry point
- About the info entry point
- Considerations for using C++ or script entry points
- About the agent information file
- About the ArgList and ArgListValues attributes
- Creating entry points in C++
- About creating entry points in C++
- Syntax for C++ entry points
- Agent framework primitives
- Agent Framework primitives for container support
- Creating entry points in scripts
- About creating entry points in scripts
- Syntax for script entry points
- Agent framework primitives
- VCSAG_GET_ATTR_VALUE
- Agent Framework primitives with container support
- Example script entry points
- Logging agent messages
- Building a custom agent
- Files for use in agent development
- Creating the type definition file for a custom agent
- Building a custom agent on UNIX
- Defining resources for the custom resource type
- Building a script based IMF-aware custom agent
- Creating XML file required for AMF plugins to do resource registration for online and offline state monitoring
- Testing agents
- Static type attributes
- About static attributes
- Static type attribute definitions
- AdvDbg
- ArgList
- State transition diagram
- Internationalized messages
- Troubleshooting VCS resource's unexpected behavior using First Failure Data Capture (FFDC)
- Appendix A. Using pre-5.0 VCS agents
VCSAgCloseFilePtr
void VCSAgCloseFilePtr(void *vp)
Use this API to push a thread cancellation cleanup handler for an open file descriptor. The API accepts the address of a FILED file descriptor as parameter. The API closes the file descriptor whose address is passed as argument, only if the value of the descriptor is greater than or equal to 0.
FILED fd = -1; pthread_cleanup_push(VCSAgCloseFilePtr, (void *) &fd); FILED fd = open("<filename>", ...); if (fd >= 0) { // Use fd } else { // error, could not successfully open file } pthread_cleanup_pop(1); // Run VCSAgCloseFilePtr to close the file descriptor