int cmp = fnmatch(pattern.c_str(), pl_name.c_str(), FNM_CASEFOLD); if (cmp == 0) return true; else if (cmp != FNM_NOMATCH) { // never see that, i think that it is fatal error. ROS_FATAL("Plugin list check error! fnmatch('%s', '%s', FNM_CASEFOLD) -> %d", pattern.c_str(), pl_name.c_str(), cmp); ros::shutdown(); }
时间: 2023-06-16 16:02:17 浏览: 48
这段代码中,首先使用了 `fnmatch` 函数比较 `pattern` 和 `pl_name` 两个字符串,如果相等则返回 `true`。如果比较结果不是 `FNM_NOMATCH`,则输出一条致命错误信息,同时调用 `ros::shutdown()` 函数关闭 ROS 节点。`fnmatch` 函数用于比较文件名是否符合指定的模式,其中 `FNM_CASEFOLD` 的含义是不区分大小写进行比较。
相关问题
key=functools.cmp_to_key
The `functools.cmp_to_key` function is a utility function in Python's `functools` module that helps convert a comparison function to a key function.
In Python, sorting a list of objects requires a way to compare the objects. This is done by providing a comparison function that takes two objects as input and returns `-1`, `0`, or `1` depending on whether the first object is less than, equal to, or greater than the second object.
However, some sorting functions in Python (such as the `sorted` function) require a key function instead of a comparison function. A key function takes a single object as input and returns a value that can be used for sorting.
The `cmp_to_key` function helps convert a comparison function to a key function by returning a new function that takes a single object as input and returns a tuple `(comparison_result, object)` where `comparison_result` is the result of calling the original comparison function with the input object and another object, and `object` is the input object itself. This tuple can then be used for sorting.
Here's an example of how to use `cmp_to_key`:
```
from functools import cmp_to_key
def compare_length(str1, str2):
if len(str1) < len(str2):
return -1
elif len(str1) > len(str2):
return 1
else:
return 0
strings = ['cat', 'dog', 'elephant', 'a', 'zebra']
sorted_strings = sorted(strings, key=cmp_to_key(compare_length))
print(sorted_strings)
# Output: ['a', 'cat', 'dog', 'zebra', 'elephant']
```
In this example, we define a comparison function `compare_length` that compares the lengths of two strings. We then use `cmp_to_key` to convert this comparison function to a key function, and pass it to the `sorted` function to sort a list of strings by length. The resulting sorted list is `['a', 'cat', 'dog', 'zebra', 'elephant']`.
Reason: Broadcast of Intent { act=android.intent.action.BOOT_COMPLETED flg=0x9000010 cmp=com.android.phone/.vvm.VvmSimStateTracker (has extras) }
这是一个安卓系统的广播通知,意味着手机完成了开机启动,并且启动了电话应用程序中的vvm.VvmSimStateTracker组件。vvm代表视觉语音邮箱,是一种电话服务,可以将语音信箱与文字消息转换成可视化的界面进行管理。SimStateTracker是一个监视SIM卡状态的组件。通常情况下,这个广播不需要特别处理,但如果你需要在手机启动完成后执行某些操作,可以注册一个接收器来处理这个广播。