UVC debug 工具

v4l2-ctl media-ctl

v4l2-ctl和media-ctl是Linux系统中用于配置和控制摄像头的命令行工具。

v4l2-ctl(Video for Linux Control)是一个用于配置和控制摄像头的工具。它允许用户查看设备的当前状态、设置视频格式、调整图像属性(如亮度、对比度、饱和度等)、启用或禁用特定功能(如自动曝光、自动对焦等)以及执行其他与视频相关的操作。v4l2-ctl通常用于摄像头、视频捕捉卡以及其它支持Video4Linux2(V4L2)标准的设备。

media-ctl是一个用于管理媒体设备拓扑结构的命令行工具。媒体设备拓扑结构描述了不同媒体设备(如摄像头、声卡等)之间的连接关系。通过media-ctl,用户可以查看、配置和修改媒体设备的拓扑结构,包括输入和输出端口的连接关系、数据格式的设置以及设备间的流传输等。media-ctl主要用于高级应用场景,比如多媒体应用开发和媒体设备驱动程序的调试。

这些工具在实际中的应用场景包括但不限于:

  • 设置和调整摄像头的参数,如亮度、对比度、饱和度等。
  • 配置视频捕捉卡的工作模式和格式。
  • 检查和修改媒体设备的拓扑结构,确保设备之间的连接正确。
  • 进行多媒体应用开发和调试,如流媒体传输、视频录制等。

作者:炭烤毛蛋 ,点击博主了解更多。


提示:。v4l2-ctl media-ctl 需要有支持V4L2的媒体硬件设备。

文章目录

  • v4l2-ctl media-ctl
  • 前期准备
    • Linux/Ubuntu 预装软件
    • Android 预装命令
  • 1. v4l2-ctl
    • 1.1 Android v4l2-ctl
      • 1.1.1 设备的设备信息
      • 1.1.2 视频格式查看、设定
      • 1.1.3 摄像头支持的可控制参数查看、设定
      • 1.1.4 摄像头采集图像
    • 1.2 linux v4l2-ctl
      • 1.2.1 摄像头 /dev/videoX 的自动授权
      • 1.2.2 摄像头参数读取、设定
  • 2. media-ctl
  • 3. gst-stream
  • 结语


前期准备

Linux/Ubuntu 预装软件

  • 安装 v4l2-ctl media-ctl
sudo apt install v4l-utils
  • 安装 gst-play
sudo apt-get install gstreamer1.0-tools

Android 预装命令

  • 工程设定配置 v4l2-ctl media-ctl
vi device/rockchip/rk356x/rk3568_r/rk3568_r.mk
+ v4l2-ctl
+ media-ctl

1. v4l2-ctl

v4l2-ctl是一个用于控制视频4 Linux 2(V4L2)设备的命令行工具。它提供了一种简单的方式来配置和管理摄像头的参数、格式和功能。

1.1 Android v4l2-ctl

1.1.1 设备的设备信息

  • 列出摄像头节点
v4l2-ctl --list-devices
USB Video: USB Video (usb-fe380000.usb-1.1):/dev/video0/dev/video1
  • 列出摄像头的设备信息
    设备信息包括设备名称、驱动程序等。

v4l2-ctl -D -d /dev/video0

    • -d --device 指定摄像头节点 /dev/video0,缺省参数默认显示全部 camera属性
# 列出所有摄像头的设备信息
v4l2-ctl -D
Driver Info:Driver name      : uvcvideoCard type        : USB Video: USB VideoBus info         : usb-fe380000.usb-1.1Driver version   : 4.19.193Capabilities     : 0x84a00001Video CaptureMetadata CaptureStreamingExtended Pix FormatDevice CapabilitiesDevice Caps      : 0x04200001Video CaptureStreamingExtended Pix Format
Media Driver Info:Driver name      : uvcvideoModel            : USB Video: USB VideoSerial           :Bus info         : usb-fe380000.usb-1.1Media version    : 4.19.193Hardware revision: 0x00002100 (8448)Driver version   : 4.19.193
Interface Info:ID               : 0x03000002Type             : V4L Video
Entity Info:ID               : 0x00000001 (1)Name             : USB Video: USB VideoFunction         : V4L2 I/OPad 0x01000007   : SinkLink 0x0200000d: from remote pad 0x100000a of entity 'Processing 2': Data, Enabled, Immutable

1.1.2 视频格式查看、设定

视频格式包括帧大小、像素格式等。

  • 列出摄像头当前属性

v4l2-ctl -d /dev/video0 --all

  • -d --device 指定摄像头节点 /dev/video0,缺省参数默认显示全部 camera属性
v4l2-ctl --all
Driver Info:Driver name      : uvcvideoCard type        : USB Video: USB VideoBus info         : usb-fe380000.usb-1.1Driver version   : 4.19.193Capabilities     : 0x84a00001Video CaptureMetadata CaptureStreamingExtended Pix FormatDevice CapabilitiesDevice Caps      : 0x04200001Video CaptureStreamingExtended Pix Format
Media Driver Info:Driver name      : uvcvideoModel            : USB Video: USB VideoSerial           :Bus info         : usb-fe380000.usb-1.1Media version    : 4.19.193Hardware revision: 0x00002100 (8448)Driver version   : 4.19.193
Interface Info:ID               : 0x03000002Type             : V4L Video
Entity Info:ID               : 0x00000001 (1)Name             : USB Video: USB VideoFunction         : V4L2 I/OPad 0x01000007   : SinkLink 0x0200000d: from remote pad 0x100000a of entity 'Processing 2': Data, Enabled, Immutable
Priority: 2
Video input : 0 (Camera 1: ok)
Format Video Capture:Width/Height      : 1920/1080Pixel Format      : 'MJPG'Field             : NoneBytes per Line    : 0Size Image        : 4147200Colorspace        : sRGBTransfer Function : Default (maps to sRGB)YCbCr/HSV Encoding: Default (maps to ITU-R 601)Quantization      : Default (maps to Full Range)Flags             :
Crop Capability Video Capture:Bounds      : Left 0, Top 0, Width 1920, Height 1080Default     : Left 0, Top 0, Width 1920, Height 1080Pixel Aspect: 1/1
Selection: crop_default, Left 0, Top 0, Width 1920, Height 1080, Flags:
Selection: crop_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags:
Streaming Parameters Video Capture:Capabilities     : timeperframeFrames per second: 30.000 (30/1)Read buffers     : 0brightness 0x00980900 (int)    : min=-128 max=127 step=1 default=-11 value=-11contrast 0x00980901 (int)    : min=0 max=255 step=1 default=148 value=148saturation 0x00980902 (int)    : min=0 max=255 step=1 default=180 value=180hue 0x00980903 (int)    : min=-128 max=127 step=1 default=0 value=0
  • 列出摄像头支持格式和分辨率

v4l2-ctl --list-formats-ext --device=/dev/video0

  • -d --device 指定摄像头节点 /dev/video0,缺省参数默认显示全部 camera属性
v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMTIndex       : 0Type        : Video CapturePixel Format: 'MJPG' (compressed)Name        : Motion-JPEGSize: Discrete 1920x1080Interval: Discrete 0.033s (30.000 fps)Interval: Discrete 0.040s (25.000 fps)Interval: Discrete 0.050s (20.000 fps)Interval: Discrete 0.100s (10.000 fps)Interval: Discrete 0.200s (5.000 fps)Size: Discrete 1280x960Interval: Discrete 0.020s (50.000 fps)Interval: Discrete 0.033s (30.000 fps)Interval: Discrete 0.050s (20.000 fps)Interval: Discrete 0.100s (10.000 fps)Interval: Discrete 0.200s (5.000 fps)Size: Discrete 1280x720Interval: Discrete 0.017s (60.000 fps)Interval: Discrete 0.020s (50.000 fps)Interval: Discrete 0.033s (30.000 fps)Interval: Discrete 0.050s (20.000 fps)Interval: Discrete 0.100s (10.000 fps)Index       : 1Type        : Video CapturePixel Format: 'YUYV'Name        : YUYV 4:2:2Size: Discrete 1920x1080Interval: Discrete 0.200s (5.000 fps)Size: Discrete 1280x960Interval: Discrete 0.125s (8.000 fps)Size: Discrete 1280x720Interval: Discrete 0.100s (10.000 fps)
  • 列出摄像头支持的视频格式
    视频格式包括帧大小、像素格式等

v4l2-ctl -d /dev/video0 --list-formats

  • -d --device 指定摄像头节点 /dev/video0,缺省参数默认显示全部 camera属性
v4l2-ctl --list-formats
ioctl: VIDIOC_ENUM_FMTIndex       : 0Type        : Video CapturePixel Format: 'MJPG' (compressed)Name        : Motion-JPEGIndex       : 1Type        : Video CapturePixel Format: 'YUYV'Name        : YUYV 4:2:2
  • 列出摄像头 MJPG 格式支持分辨率、帧大小
v4l2-ctl --list-framesizes=MJPG -d /dev/video0
ioctl: VIDIOC_ENUM_FRAMESIZESSize: Discrete 1920x1080Size: Discrete 1280x960Size: Discrete 1280x720
  • 列出摄像头 YUYV 格式支持分辨率、帧大小
v4l2-ctl --list-framesizes=YUYV -d /dev/video0
ioctl: VIDIOC_ENUM_FRAMESIZESSize: Discrete 1920x1080Size: Discrete 1280x960Size: Discrete 1280x720
  • 设置摄像头图像分辨率、格式
v4l2-ctl -d /dev/video0 --set-fmt-video=width=1280,height=720,pixelformat=NV12
  • 设置摄像头帧率
v4l2-ctl -d /dev/video0 --set-parm=60

1.1.3 摄像头支持的可控制参数查看、设定

摄像头支持的可控制参数,包括亮度、对比度、饱和度等

  • 列出指定摄像头支持的可控制参数,包括亮度、对比度、饱和度等

v4l2-ctl -d /dev/video0 --list-ctrls

  • -d --device 指定摄像头节点 /dev/video0,缺省参数默认显示全部 camera属性
v4l2-ctl --list-ctrlsbrightness 0x00980900 (int)    : min=-128 max=127 step=1 default=-11 value=-11contrast 0x00980901 (int)    : min=0 max=255 step=1 default=148 value=148saturation 0x00980902 (int)    : min=0 max=255 step=1 default=180 value=180hue 0x00980903 (int)    : min=-128 max=127 step=1 default=0 value=0
  • 获取指定摄像头的某个可控制参数(例如亮度)的当前值

v4l2-ctl -d /dev/video0 --get-ctrl=control_name
-d --device 指定摄像头节点 /dev/video0,缺省参数默认显示全部 camera属性

v4l2-ctl -d /dev/video0 --get-ctrl brightness
brightness: -11
  • 设置指定摄像头的某个可控制参数(例如亮度)为指定的值。

v4l2-ctl -d /dev/video0 --set-ctrl=control_name=value
-d --device 指定摄像头节点 /dev/video0,缺省参数默认显示全部 camera属性

v4l2-ctl -d /dev/video0 --set-ctrl brightness -31

1.1.4 摄像头采集图像

  • 指定摄像头上进行内存映射模式的视频流捕获,捕获10帧视频
v4l2-ctl -d /dev/video0 --stream-mmap --stream-count=10
  • 指定摄像头上使用用户指针模式进行视频流捕获,捕获10帧视频。
v4l2-ctl -d /dev/video0 --stream-userp --stream-io-methode=2 --stream-count=10

尽量采集时间超过3s,能看到帧率信息;-d --device 指定摄像头节点 /dev/video0。

v4l2-ctl -d /dev/video0 --stream-mmap=3 --stream-skip=3 --stream-to=/sdcard/cif.raw --stream-count=200 --stream-poll
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 58.53 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 59.26 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 59.50 fps
  • 整合参数,抓取图像
v4l2-ctl -d /dev/video0 --set-fmt-video=width=800,height=600,pixelformat=NV12 --stream-mmap=3 --stream-skip=3 --stream-to=/path/cif.raw --stream-count=1 --stream-poll

1.2 linux v4l2-ctl

1.2.1 摄像头 /dev/videoX 的自动授权

udev是Linux系统中负责管理设备的设备管理器,在设备插入或系统启动时执行规则以对设备进行配置和授权。
/etc/udev/rules.d/99-video.rules

SUBSYSTEM=="video4linux", KERNEL=="video[0-9]", MODE="0666"

SUBSYSTEM=="video4linux"用于匹配摄像头子系统,KERNEL=="videoX"用于匹配设备名为video0的设备,MODE="0666"表示设置设备权限为0666(即所有用户均有读写权限)。

重新加载udev规则,使其生效添加完规则:

sudo udevadm control --reload-rules
sudo udevadm trigger

1.2.2 摄像头参数读取、设定

  • 通过v4l2查看摄像头设备

v4l2-ctl --list-devices

当同时连接多个摄像头时,指定摄像头的两种方法。

-d /dev/video0
–device /dev/video0 #指定摄像头节点 /dev/video0

  • 查看/dev/video0 摄像头所有参数

v4l2-ctl -d /dev/video0 --all

  • 查看当前摄像头支持的视频压缩格式

v4l2-ctl -d /dev/video0 --list-formats

  • 查看当前摄像头支持的分辨率和帧速率
    v4l2-ctl -d /dev/video0 --list-formats-ext

  • 设置帧率

Av4l2-ctl -d /dev/video0 --set-parm=30

  • 查看摄像头所支持的分辨率

v4l2-ctl --list-framesizes=MJPG -d /dev/video0

  • 设置摄像头所支持的分辨率

v4l2-ctl --set-fmt-video=width=320,height=240,pixelformat=YUYV

  • 曝光参数调整

v4l2-ctl -d /dev/video0 --list-ctrls

  • 设置曝光值
    当exposure_auto=1( V4L2_EXPOSURE_MANUAL )时可设置曝光绝对值

v4l2-ctl --device=/dev/video0 --set-ctrl=exposure_auto=1
v4l2-ctl --device=/dev/video0 --set-ctrl=exposure_absolute=2

  • 加载 uvcvideo 模块
sudo modprobe uvcvideo nodrop=1 timeout=5000
  • 查看摄像头加载状态
ls /dev/v* # 看到"/dev/video0",表示成功驱动
  • 查看摄像头占用总线
lsusb
  • 移除 uvcvideo 模块
# 列出可用模块
lsmod
# 移除模块
sudo rmmod uvcvideo

注意: 使用v4l2-ctl进行摄像头的配置和管理通常需要有相应的权限,可能需要使用sudo命令来执行相关操作。

2. media-ctl

media-ctl是一个用于控制媒体设备的命令行工具。它提供了一种简单的方式来配置和管理视频、音频和其他媒体设备的连接、格式和参数设置。
配置媒体设备拓扑:通过media-ctl,您可以配置和修改媒体设备的拓扑结构,包括输入和输出端口的连接关系、数据格式的设置以及设备间的流传输等。这对于建立复杂的多媒体应用程序非常有用,如音视频编解码、实时视频处理等。
调试和测试媒体设备:使用media-ctl,您可以检查媒体设备的状态、属性和拓扑结构,并测试不同的配置选项。这对于故障排除和确定最佳设置非常有用。
验证数据流:media-ctl可以用来验证数据流是否正确。您可以在媒体设备之间建立连接,发送和接收数据流,并验证数据的格式和属性是否符合要求。
编写自动化测试脚本:media-ctl可以通过脚本和命令行批处理来自动化测试和集成。您可以编写脚本来执行一系列的配置和控制操作,以及检查结果,从而提高开发和测试效率。

以下是一些常用的media-ctl命令和选项的详解:

  • 显示当前系统中的摄像头和连接信息,包括设备名称、实体信息、连接关系等。

media-ctl -p

  • 列出当前系统中的摄像头和实体信息,包括设备名称、实体类型、组件子实体等。

media-ctl -l

  • 显示当前系统中的摄像头信息,包括设备名称、视频标准、格式等。

media-ctl -V

  • 显示指定摄像头(例如/dev/media0)的详细信息,包括实体、连接和格式等。

media-ctl -d /dev/media0 -p

  • 显示指定实体的详细信息,其中"entity_id"是实体的ID(从media-ctl -p命令中获取)。

media-ctl -r -l “entity_id” -V

  • 向指定实体(例如/video/xilinx_hdmi_tx_0)应用参数列表(例如"args")。

media-ctl -e “entity_id” -A “args”:

  • 重置指定实体的参数为默认值。

media-ctl -r “entity_id” -A “args”:

  • 以JSON格式列出指定实体的详细信息。

media-ctl -l “entity_id” -j:

  • 显示指定媒体设备(例如/dev/media0)支持的视频标准和格式列表。

media-ctl -V -d /dev/media0:

media-ctl -p -d /dev/media0 
Opening media device /dev/media0
Enumerating entities
Found 4 entities
Enumerating pads and links
Media controller API version 0.0.193Media device information
------------------------
driver          uvcvideo
model           USB Video: USB Video
serial
bus info        usb-fe380000.usb-1.1
hw revision     0x2100
driver version  0.0.193Device topology
- entity 1: USB Video: USB Video (1 pad, 1 link)type Node subtype V4Ldevice node name /dev/video0pad0: Sink<- "Processing 2":1 [ENABLED,IMMUTABLE]- entity 4: USB Video: USB Video (0 pad, 0 link)type Node subtype V4Ldevice node name /dev/video1- entity 8: Processing 2 (2 pads, 2 links)type V4L2 subdev subtype Unknownpad0: Sink
v4l2_subdev_open: Failed to open subdev device node<- "Camera 1":0 [ENABLED,IMMUTABLE]pad1: Source
v4l2_subdev_open: Failed to open subdev device node-> "USB Video: USB Video":0 [ENABLED,IMMUTABLE]- entity 11: Camera 1 (1 pad, 1 link)type V4L2 subdev subtype Sensorpad0: Source
v4l2_subdev_open: Failed to open subdev device node-> "Processing 2":0 [ENABLED,IMMUTABLE]

3. gst-stream

在GStreamer中,gst-stream-parameters(gst-stream)是一个用于设置流媒体传输参数的工具。

  • –uri:指定输入流的URI,可以是本地文件路径或网络流媒体地址。

  • –video-output:指定视频输出格式,如xvimagesink、autovideosink等。这是用于显示视频的插件。

  • –audio-output:指定音频输出格式,如alsasink、autoaudiosink等。这是用于播放音频的插件。

  • –video-decoder:指定视频解码器,如h264parse、vp8dec等。

  • –audio-decoder:指定音频解码器,如aacparse、vorbisdec等。

  • –video-filter:指定视频过滤器,如videoflip method=horizontal-flip、videorate等。这些过滤器可以对视频进行转换和处理。

  • –audio-filter:指定音频过滤器,如audioconvert、audioresample等。这些过滤器可以对音频进行转换和处理。

  • –muxer:指定多路复用器,将视频和音频混合成一个流,如mp4mux、matroskamux等。

  • –output:指定输出文件路径或网络地址,用于保存或传输处理后的流媒体。

  • gst-stream 预览

gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=1280,height=720,framerate=30/1 ! autovideosinkgst-launch-1.0 v4l2src ! videoconvert ! ximagesink
gst-launch-1.0 v4l2src ! videoconvert ! xvimagesink
gst-launch-1.0 v4l2src ! videoconvert ! glimagesink
gst-launch-1.0 v4l2src ! device=/dev/video0 videoconvert ! ximagesink
gst-launch-1.0 v4l2src ! device=/dev/video2 videoconvert ! xvimagesink
  • 自动匹配 video sink
gst-launch-1.0 v4l2src device=/dev/video0 ! autovideosink
  • gst-launch 预览 UVC
v4l2-ctl --set-fmt-video=width=1280,height=720,pixelformat=0 --device=/dev/video0
v4l2-ctl -p 60 --device=/dev/video0
gst-launch-1.0 -vvv v4l2src device=/dev/video0 ! ! video/x-raw,format=(string)YUY2,width=1280,height=720,framerate=(fraction)60/1 ! ! waylandsink

结语

不枉博主详细讲解,欢迎订阅博主–炭烤毛蛋 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/199736.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Isaac Sim教程06 OmniGraph图编程

Isaac Sim OmniGraph图编程 版权信息 Copyright 2023 Herman YeAuromix. All rights reserved.This course and all of its associated content, including but not limited to text, images, videos, and any other materials, are protected by copyright law. The autho…

Spring容器启动过程中的自定义操作插口汇总

目录标题 PostConstruct注解EventListener方式InitializingBean的afterPropertiesSet方法实现ApplicationRunner接口重写run方法实现AplicationContextAware接口重写setApplicationContext实现ServletContextListener接口contextInitialized方法实现ServletContextAware接口set…

7个简单技巧,让你从容应对压力面试!

01-什么是压力面试&#xff1f; 压力面试是指有意制造紧张&#xff0c;以了解求职者将如何面对工作压力的一种面试形式。 事实上&#xff0c;压力面试不是单独存在的一类面试&#xff0c;往往是穿插在面试过程中。 面试人通过提出不礼貌、冒犯的问题&#xff0c;或者用怀疑、…

【1day】蓝凌OA 系统custom.jsp 接口远程命令执行漏洞学习

注:该文章来自作者日常学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与作者无关。 目录 一、漏洞概述 二、影响版本 三、资产测绘 四、漏洞复现

梦回吹角连营(2)(快速幂快乘)

Description 给定f(n)(a1)*n^a(a2)*n^(a1)...b*n^(b-1) 求f(n)%10000000033 Input 输入一个正整数T(T<10),表示有T组数据&#xff0c;每组数据包括三个整数a,b,n (0<n<10^9,1<a < b-1<10^20) Output 输出 f(n)%10000000033 的结果 Sample Input 1 1 2…

【1day】蓝凌OA 系统datajson.js接口远程命令执行漏洞学习

注:该文章来自作者日常学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与作者无关。 目录 一、漏洞概述 二、影响版本 三、资产测绘 四、漏洞复现

要求CHATGPT高质量回答的艺术:提示工程技术的完整指南

要求CHATGPT高质量回答的艺术&#xff1a;提示工程技术的完整指南 第一章&#xff1a;什么是提示工程&#xff1f; 提示工程是创建提示或询问或给出指令的过程&#xff0c;这些指令指导像ChatGPT这样的语言模型的输出。 它允许用户控制模型的输出并生成适合他们特定需求的文…

十三、FreeRTOS之FreeRTOS时间管理

本节主要介绍以下内容&#xff1a; 1&#xff0c;延时函数介绍&#xff08;了解&#xff09; 2&#xff0c;延时函数解析&#xff08;熟悉&#xff09; 3&#xff0c;延时函数演示实验&#xff08;掌握&#xff09; 4&#xff0c;课堂总结&#xff08;掌握&#xff09; 一、…

最新测试开发招聘信息汇总,内含社招和实习生岗位~

1 科大讯飞 [武汉/合肥/西安] 科大讯飞&#xff08;教育事业部&#xff09; - 移动、服务端高级测试开发工程师 一、移动方向高级测试开发工程师 岗位职责&#xff1a; 1.负责教育 BG 中 APP/SDK/软硬一体等产品类型的专项测试工作&#xff0c;包括专项测试方案设计、自动化测…

通过时间交织技术扩展ADC采样速率的简要原理

前言 数据采集是将自然界中存在的模拟信号通过模数转换器&#xff08;ADC&#xff09;转换成数字信号&#xff0c;再对该数字信号进行相应的接收和处理。数据采集系统作为数据采集的手段&#xff0c;在移动通信、图向采集、无线电等领域有重要作用。随着电子信息技术的飞速发展…

【计算机系统基石与Linux进程管理深度解析】

​​​​​​​ 【本节重点】 认识冯诺依曼系统 操作系统概念与定位 深入理解进程概念&#xff0c;了解PCB 学习进程状态&#xff0c;学会创建进程&#xff0c;掌握僵尸进程和孤儿进程&#xff0c;及其形成原因和危害 1.冯诺依曼体系结构 我们常见的计算机&#xff0c;如…

IO / day03 作业

1. 使用文件IO完成对图像的读写操作 代码 #include<myhead.h>int main(int argc, const char *argv[]) {int fd-1;if((fd open("./bird.bmp", O_RDWR)) -1){perror("fopen error");return -1;}//读取该图片的大小&#xff0c;需要将光标向后偏移…

通过pipeline配置sonar自动化实现过程解析

这篇文章主要介绍了通过pipeline配置sonar自动化实现过程解析,文中通过示例代码介绍的非常详细&#xff0c;对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.sonar配置webhooks&#xff0c; 2.url填写jenkins的地址&#xff1a;http://jenkinsurl/sonarqu…

高低压供配电智能监控系统

高低压供配电智能监控系统是一种综合运用物联网、云计算、大数据和人工智能等技术的智能化监控系统&#xff0c;用于实时监测高低压供配电设备的运行状态和电能质量&#xff0c;及时发现和处理供配电系统中存在的问题&#xff0c;提高供配电系统的安全性和可靠性。依托电易云-智…

JavaScript 数组

JavaScript 数组 用来存储一系列相关数据的一种数据类型 创建数组 字面量方式 ----- [1,2,3,4,5,6];实例化构造函数 ----- new Array(1,2,3,4,5,6);组成数组的元素可以是任意的数据类型包括数组本身&#xff1b; new Array(n): n 表示数组的长度 内容操作 获取&#xff08;查…

LLM之Agent(四)| AgentGPT:一个在浏览器运行的Agent

AgentGPT是一个自主人工智能Agent平台&#xff0c;用户只需要为Agent指定一个名称和目标&#xff0c;就可以在浏览器中链接大型语言模型&#xff08;如GPT-4&#xff09;来创建和部署Agent平台。 PS&#xff1a;目前agentGPT仅支持chatgpt模型&#xff0c;暂时不支持本地llm模…

怎么让CMake不使用VS作为构建工具,而是使用gcc

2023年12月5日&#xff0c;周二晚上 要让 CMake 使用 gcc 而不是 Visual Studio 作为构建工具&#xff0c;可以通过指定生成器来告诉 CMake 使用 gcc。 在运行 cmake 命令时&#xff0c;可以使用 -G 参数来指定生成器。 对于 gcc&#xff0c;可以使用 "Unix Makefiles&q…

调查显示 IT 服务事件越来越频繁

事件管理平台提供商 Transposit 对美国 1,000 名 IT 运营、DevOps、站点可靠性工程 (SRE) 和平台工程专业人士进行的一项调查发现&#xff0c;超过三分之二 (67%) 的人发现故障率有所增加过去 12 个月中影响客户的服务事件的频率。 今天在Kubecon CloudNative会议上宣布的调查…

102.套接字-Socket网络编程4(TCP通信流程)

目录 TCP编程流程 套接字函数 1.创建套接字 2.绑定地址 3.监听连接请求 4.接受连接 5. 连接到服务器 6. 发送数据 7. 接收数据 8.关闭套接字 服务器端通信流程 示例代码 客户端通信流程 代码示例 TCP编程流程 TCP是一个面向连接的&#xff0c;安全的&#xff0c;流…

【Java技术专题】「入门到精通系列教程」深入探索Java特性中泛型技术体系的原理和实战开发指南

深入探索Java特性中泛型技术体系的原理和实战开发指南 前提介绍泛型的介绍泛型带来的好处泛型引发的问题错觉&#xff1a;泛型也可以实现多态 泛型的特点类型擦除概念定义案例分析隐患问题开发要点类型擦除的过程案例代码 实例分析类型转换问题 通配符与上下界通配符List<Ob…