# ros2_rcutils **Repository Path**: kernelsoftCorporation/ros2_rcutils ## Basic Information - **Project Name**: ros2_rcutils - **Description**: ros2 rcutils扩展 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-14 - **Last Updated**: 2025-06-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # rcutils: ROS 2 C Utilities data structures `rcutils` is a C API consisting of macros, functions, and data structures used through out the ROS 2 code base. 参考:https://fishros.org.cn/forum/topic/1770/ros2%E6%97%A5%E5%BF%97%E5%A6%82%E4%BD%95%E6%89%93%E5%8D%B0%E6%97%B6%E5%88%86%E7%A7%92%E6%A0%BC%E5%BC%8F%E6%97%B6%E9%97%B4/6 ## Quality Declaration This package claims to be in the **Quality Level 1** category, see the [Quality Declaration](./QUALITY_DECLARATION.md) for more details. ## dependence ```bash sudo apt install ros-humble-mimick-vendor ros-humble-performance-test-fixture -y ``` ## API The API is a combination of parts: - Allocator concept, used to inject the allocating and deallocating methods into a function or type. - rcutils_allocator_t - rcutils/allocator.h - Command line interface utilities: - rcutils/cmdline_parser.h - Utilities for setting error states (error message, file, and line number) like `strerror` for `errno`: - rcutils/error_handling.h - Some basic filesystem utilities like checking for path existence, getting the cwd, etc...: - rcutils/filesystem.h - A C string find method: - rcutils_find() - rcutils_find_last() - rcutils/find.h - A convenient string formatting function, which takes a custom allocator: - rcutils_format_string() - rcutils/format_string.h - Functions for interfacing with process environment variables: - rcutils_get_env() - rcutils_get_home_dir() - rcutils_set_env() - rcutils/env.h - rcutils/get_env.h - Extensible logging macros: - Some examples (not exhaustive): - RCUTILS_LOG_DEBUG() - RCUTILS_LOG_INFO_NAMED() - RCUTILS_LOG_WARN_ONCE() - RCUTILS_LOG_ERROR_SKIPFIRST_NAMED() - rcutils/logging_macros.h - rcutils/logging.h - Some basic utilities to load, unload and get symbols from shared libraries at run-time. - rcutils/shared_library.h - A string replacement function which takes an allocator, based on http://creativeandcritical.net/str-replace-c: - rcutils_repl_str() - rcutils/repl_str.h - String splitting functions which take a custom allocator: - rcutils_split() - rcutils_split_last() - rcutils/split.h - A version of `strdup` which takes an allocator: - rcutils_strdup() - rcutils/strdup.h - Portable implementations of "get system time" and "get steady time": - rcutils_system_time_now() - rcutils_steady_time_now() - rcutils/time.h - Some useful data structures: - A "string array" data structure (analogous to `std::vector`): - rcutils_string_array_t - rcutils/types/string_array.h - A "string-string map" data structure (analogous to `std::map`) - rcutils_string_map_t - rcutils/types/string_map.h - Macros for controlling symbol visibility and linkage for this library: - rcutils/visibility_control.h - rcutils/visibility.h