1 | git config --global http."内网域名".sslCAInfo "证书所在路径" |
公司常见后缀的含义
1. Co., Ltd.
- 全称:Company Limited
- 含义:有限责任公司,常见于英国、中国及亚洲地区
- 特点:”Co.“为Company缩写,”.“表示缩写符号,”,”用于分隔前后词
2. Inc.
- 全称:Incorporated
- 含义:股份有限公司,多用于美国、加拿大
- 示例:Apple Inc.,强调股东责任限于股份投资
3. LLC
- 全称:Limited Liability Company
- 含义:有限责任公司(美国特有形式)
- 特点:兼具合伙制灵活性与股份制有限责任,如Google LLC
4. GmbH
- 全称:Gesellschaft mit beschränkter Haftung
- 含义:有限责任公司,德国及德语区专用
- 示例:Bosch GmbH1
5. AG
- 全称:Aktiengesellschaft
- 含义:股份有限公司,德国及瑞士常见
- 示例:BMW AG
6. S.A.
- 全称:Société Anonyme(法)/Sociedad Anónima(西)
- 含义:股份有限公司,流行于法国、西班牙等拉丁语系国家
- 示例:L’Oréal S.A.1
7. Plc
- 全称:Public Limited Company
- 含义:公众有限公司(英国上市企业专用)
- 示例:HSBC Holdings plc1
8. 株式会社(Kabushiki Kaisha)
- 缩写:KK
- 含义:日本股份有限公司
- 示例:Toyota Motor Corporation KK
地域差异提示:
- 英国”Ltd.”与美国”LLC”虽均表有限责任,但法律结构不同
- 荷兰用”BV”(私人有限公司),意大利用”S.p.A.”(股份公司)
K3s部署Tekton
Linux实现U盘插入自动挂载
方式一
通过udev
规则监听设备事件,编写/etc/udev/rules.d/99-udev-mount.rules
规则实现U盘插入捕获U盘插入事件
1 | # 插入U盘自动挂载 |
规则编辑完成后执行以下命令使规则生效
1 | sudo udevadm control --reload |
Python对接C库
1. 准备环境
- 准备开发包:包含头文件(
.h
)、库文件(.dll或.so
)及对接文档 - 安装依赖:确保Python环境已安装
ctypes
库或第三方库例如Cython
(用于复杂场景) - 配置路径:将SDK的库路径添加到环境变量或直接在代码中指定路径(推荐方式,不会因为换电脑导致无法编译,例如
sdk/windows/sdk.dll
)
2. 封装接口
加载SDK
1 | import sys |
定义结构体
1 | # 定义结构体,需要与SDK头文件一致 |
![[Python对接C库/IMG-20250327180040644.png]]
定义函数原型,需严格对齐SDK中的数据类型和函数参数顺序
1 | sdk.Init.restype = c_bool # 映射返回值,Init为C/C++中的函数名 |
3. 接口调用
函数调用
1 | sdk.Init(c_int(0), c_int_p(0), c_char_p(b"this is a test")) |
带有回调函数的函数调用
回调函数例如
1 | int (*Callback) (int, char*); |
Python中定义回调函数类型
1 | CallbackType = CFUNCTYPE(c_int, c_int, c_char_p) # 返回类型在前,参数在后 |
若C函数使用__stdcall
(常见于Windows API),需要WINFUNCTYPE
替代CFUNCTYPE
,若为__cdecl
(默认),则使用CFUNCTYPE
Python实现回调函数(参数和返回值需与C定义严格一致)
1 | def py_callback(num, text) -> int: |
处理指针参数
若回调参数包含指针,例如void*
,需要使用c_void_p
类型,并通过cast解析
1 | def py_callback(data_ptr): |
注册回调函数
1 | c_callback = CallbackType(py_callback) # 使用定义的回调类型包装Python函数 |
4. 资源释放
退出时需要调用SDK中的清理函数释放资源
1 | sdk.Cleanup() |
5. 注意事项
- 结构体指针和缓冲区需要手动分配/释放,避免内存泄漏
- 不同版本SDK接口可能有差异,建议统一开发与部署环境
- 映射Windows中特有的类型例如
WORD
,DWORD
在wintypes
包中 - C调用Python回调时,若Python函数抛出异常可能导致程序崩溃。需要在回调内部处理异常。
- 若C函数在子线程中调用回调,需确保Python的GIL(全局解释锁)已获取
1
2
3
4
5
6
7from ctypes import py_object, pythonapi
PyGILState_Ensure = pythonapi.PyGILState_Ensure
PyGILState_Release = pythonapi.PyGILState_Release
def thread_safe_callback():
state = PyGILState_Ensure()
# 执行Python操作
PyGILState_Release(state)
Golang检查目录是否存在
使用os.stat()
1 | package main |
使用os.open()
1 | package main |
使用mkdir()
1 | package main |
Golang实现SM4
ECB模式,PKCS5填充
1 | package sm4 |
Python判断当前运行系统环境
使用sys
模块
1 | import sys |
使用platform
模块
1 | import platform |
使用os
模块
1 | import os |
Linux修改MAC地址
临时修改
方法一
1 | sudo apt update & sudo apt install net-tools # 安装 net-tools |
方法二
1 | sudo ip link set dev eth0 down # 停用网卡 |
永久修改
注意: 永久修改需要停止NetworkManager服务,此服务可能导致修改不生效
1 | sudo systemctl stop NetworkManager.service |
方法一
编辑`/etc/init.d/rc.local``文件,在此配置文件最后追加临时修改网卡MAC命令
1 | # 修改 ech0 网卡的 MAC 地址 |
方法二
编辑/etc/network/interfaces
文件,在此文件后追加
1 | auto eth0 # 网卡自动启动 |
修改完成需要重启网络服务使配置生效
1 | sudo systemctl restart networking.service |
Conda环境配置
安装Anaconda
1 | wget https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh |
如果是否添加环境变量选择no
的话,安装完成需要手动添加环境变量
1 | export ANACONDA3_ROOT=/usr/local/anaconda3 |
如果安装时选择了no
但安装完成还想初始化可以执行
1 | source /usr/local/anaconda3/bin/activate |
![[Anaconda环境配置/IMG-20250326093704426.png]]
安装完成后查看.bashrc
中变更内容如下
1 | # >>> conda initialize >>> |
解决打开终端Anaconda自启动问题
1 | ``` |
channels:
- defaults
show_channel_urls: true
channel_alias: https://mirrors.bfsu.edu.cn/anaconda
default_channels: - https://mirrors.bfsu.edu.cn/anaconda/pkgs/main
- https://mirrors.bfsu.edu.cn/anaconda/pkgs/free
- https://mirrors.bfsu.edu.cn/anaconda/pkgs/r
- https://mirrors.bfsu.edu.cn/anaconda/pkgs/pro
- https://mirrors.bfsu.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.bfsu.edu.cn/anaconda/cloud
msys2: https://mirrors.bfsu.edu.cn/anaconda/cloud
bioconda: https://mirrors.bfsu.edu.cn/anaconda/cloud
menpo: https://mirrors.bfsu.edu.cn/anaconda/cloud
pytorch: https://mirrors.bfsu.edu.cn/anaconda/cloud
simpleitk: https://mirrors.bfsu.edu.cn/anaconda/cloud1
2
3
4
5
6
7
8
9
10
11
12
13
上海交通大学
```bash
default_channels:
- https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/r
- https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/main
custom_channels:
conda-forge: https://anaconda.mirrors.sjtug.sjtu.edu.cn/cloud/
pytorch: https://anaconda.mirrors.sjtug.sjtu.edu.cn/cloud/
channels:
- defaults
show_channel_urls: true
Anaconda添加删除虚拟环境
1 | # 新建虚拟环境 -n 为新建虚拟环境命名 |
Anaconda切换虚拟环境
1 | # 查看所有虚拟环境 |