我想抑制第三方库中的一个错误,但在任何其他失败的检查中仍然有程序 exit 1。在我看来,无论文件内容-fno-sanitize-recover如何,都会退出程序。suppressions另一方面-fsanitize-recover,指定的错误被正确抑制,另一个错误仍然打印,但程序正常退出,这是我不想要的。
$ cat main.cpp
int main() {
int k = 0x7fffffff;
k++; // signed-integer-overflow
k <<= k; // invalid-shift-exponent
return 0;
}
$ clang++ -fsanitize=undefined -fno-sanitize-recover main.cpp -o main
$ cat supp.txt
signed-integer-overflow:main.cpp
$ UBSAN_OPTIONS=report_error_type=1,suppressions=supp.txt ./main
main.cpp:3:4: runtime error: signed integer overflow: 2147483647 + 1 cannot be represented in type 'int'
SUMMARY: UndefinedBehaviorSanitizer: signed-integer-overflow main.cpp:3:4 in
$ echo $?
1
$ clang++ -fsanitize=undefined -fsanitize-recover main.cpp -o main
$ UBSAN_OPTIONS=report_error_type=1,suppressions=supp.txt ./main
main.cpp:4:5: runtime …Run Code Online (Sandbox Code Playgroud) 我想用 C++ 读取我的 socketcan 套接字当前配置的 CAN 比特率。
我可以通过以下方式查看比特率ip -det link show can0:
9: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 10
link/can promiscuity 0
can state ERROR-ACTIVE restart-ms 100
bitrate 1000000 sample-point 0.750
tq 125 prop-seg 2 phase-seg1 3 phase-seg2 2 sjw 1
pcan_usb: tseg1 1..16 tseg2 1..8 sjw 1..4 brp 1..64 brp-inc 1
clock 8000000
Run Code Online (Sandbox Code Playgroud)
比特率通过设置/etc/network/interfaces,但用户可以手动更改它。
libsocketcan 似乎只支持设置比特率,但不支持读取比特率。
如何使用libnetlink读取相应的属性?或者还有另一种读取当前比特率的方法吗?
是否有一个(Matlab)函数类似于ceil查找下一个大于输入但不等于输入的整数?
例子:
1.1 --> 2
1.9 --> 2
2.0 --> 3 (note that ceil(2) == 2)
2.1 --> 3
Run Code Online (Sandbox Code Playgroud)
我尝试过ceil(x+eps),但这只适用于少量:
>> ceil((-4:4)+eps)
ans =
-4 -3 -1 0 1 2 2 3 4
Run Code Online (Sandbox Code Playgroud)
另外,任何等效项floor?
我是 Kubernetes 的新手。在我的项目中,我尝试使用 Kustomize 为我的部署生成 configMaps。Kustomize 在 configMap 名称后添加了一个哈希值,但我无法让它也更改部署以使用新的 configMap 名称。
部署:
apiVersion: apps/v1
kind: Deployment
metadata:
name: env-receiver-deployment
labels:
app: env-receiver-app
project: env-project
spec:
replicas: 1
selector:
matchLabels:
app: env-receiver-app
template:
metadata:
labels:
app: env-receiver-app
project: env-project
spec:
containers:
- name: env-receiver-container
image: eu.gcr.io/influxdb-241011/env-receiver:latest
resources: {}
ports:
- containerPort: 8080
envFrom:
- configMapRef:
name: env-receiver-config
args: [ "-port=$(ER_PORT)", "-dbaddr=$(ER_DBADDR)", "-dbuser=$(ER_DBUSER)", "-dbpass=$(ER_DBPASS)" ]
Run Code Online (Sandbox Code Playgroud)
kustomize.yml:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
configMapGenerator:
- name: env-receiver-config
literals:
- ER_PORT=8080
- ER_DBADDR=http://localhost:8086
- ER_DBUSER=writeuser
- …Run Code Online (Sandbox Code Playgroud)