而read,write 是把数据丢入缓冲区,硬件的驱动从缓冲区读取数据一个个发送或者把接收的数据送入缓冲区。
[wbyq@wbyq linux_c]$ make pwd /mnt/hgfs/linux-share-dir/linux_c [wbyq@wbyq linux_c]$ make app2 ls a.out...@wbyq linux_c]$ make app4 rm 123.c rm 456.c [wbyq@wbyq linux_c]$ make app1 app2 app3 app4 pwd /mnt/hgfs...[wbyq@wbyq linux_c]$ ls app.c Makefile sum.c sum.h [wbyq@wbyq linux_c]$ make -n gcc sum.c -c gcc app.c...-o app [wbyq@wbyq linux_c]$ ....[wbyq@wbyq linux_c]$ ls app.c Makefile sum.c sum.h [wbyq@wbyq linux_c]$ make -n cc -c -o app.o
[wbyq@wbyq linux_c]$ ls a.out app app.c app.o sum [wbyq@wbyq linux_c]$ [wbyq@wbyq linux_c]$ gcc...[wbyq@wbyq linux_c]$ ./a.out ..../a.out [wbyq@wbyq linux_c]$ ....:/mnt/hgfs/linux-share-dir/linux_c/sum [wbyq@wbyq linux_c]$ ....[wbyq@wbyq linux_c]$ ls app.c sum [wbyq@wbyq linux_c]$ gcc app.c -I sum/ -L sum/ -lsum [wbyq@wbyq linux_c
[wbyq@wbyq linux_c]$ gcc app.c [wbyq@wbyq linux_c]$ ls a.out app.c shell.sh [wbyq@wbyq linux_c]$ ....进程前台与后台切换方式 [wbyq@wbyq linux_c]$ ..../a.out [wbyq@wbyq linux_c]$ jobs [1]+ Stopped ..../a.out [wbyq@wbyq linux_c]$ bg 1 将后台停止的进程变为执行状态 [1]+ ..../a.out & [wbyq@wbyq linux_c]$ jobs [1]+ Running .
操作系统: ubuntu18.04 64位 二、编写Makefile(PC机) 先输入uname -r命令查看当前系统的版本. root@wbyq:/mnt/hgfs/linux-share-dir/linux_c.../usb_dev_ubuntu# uname -r 5.3.0-40-generic 查看系统内核的路径是否存在: root@wbyq:/mnt/hgfs/linux-share-dir/linux_c...linux-hwe-5.4-headers-5.4.0-45 linux-hwe-5.4-headers-5.4.0-53 root@wbyq:/mnt/hgfs/linux-share-dir/linux_c.../usb_dev_ubuntu# insmod spectrometer_usb_drv.ko root@wbyq:/mnt/hgfs/linux-share-dir/linux_c/usb_dev_ubuntu...root@wbyq:/mnt/hgfs/linux-share-dir/linux_c/usb_dev_ubuntu# dmesg [137747.993110] 总线名称:usb [137747.993111
\n"); } /*2 设置摄像头的属性*/ struct v4l2_format format; /*2.1 查询当前摄像头支持的格式*/ //当前视频设备支持的视频图像格式 struct...设置摄像头采集的帧率*/ struct v4l2_streamparm streamparm; streamparm.type=V4L2_BUF_TYPE_VIDEO_CAPTURE; /*表示视频捕获设备...v4l2_requestbuffers)); req_buff.count=4; /*预设要申请4个缓冲区*/ req_buff.type=V4L2_BUF_TYPE_VIDEO_CAPTURE; /*视频捕获设备...buffer)); int i; for(i=0;i<req_buff.count;i++) { buff_info.type=V4L2_BUF_TYPE_VIDEO_CAPTURE; /*视频捕获设备.../app wbyq@wbyq:/mnt/hgfs/linux-share-dir/linux_c/yuv_save_jpg$ .
/a.out [-a 123 -b 456 -c 789 -v] [wbyq@wbyq linux_c]$ ./a.out -? 用法:..../a.out [-a 123 -b 456 -c 789 -v] [wbyq@wbyq linux_c]$ ..../a.out -a 12345 当前的选项形参:a,值:12345 [wbyq@wbyq linux_c]$ ..../a.out --a123 12345 当前的选项形参:a,值:12345 [wbyq@wbyq linux_c]$ ./a.out -? 用法:..../a.out [wbyq@wbyq linux_c]$ ./a.out -a 1234 当前的选项形参:a,值:1234 [wbyq@wbyq linux_c]$ .
使用较多的就是遍历目录的功能,比如: 音乐播放器需要循环播放指定目录下所有音频文件,视频播放器需要遍历指定目录查找所有的视频文件加入到播放列表等等。...*argv) { int i; for(i=0;i<argc;i++) printf("%s\n",argv[i]); return 0; } [wbyq@wbyq linux_c.../a.out 123.c 456.c app.c [wbyq@wbyq linux_c]$ ./a.out \*.c ..../a.out *.c [wbyq@wbyq linux_c]$ 2.5 使用目录操作函数实现ls *.c 使用目录操作函数实现ls *.c 或者ls *.mp3 类似的功能. *号是特殊符号.
Linux 下的 Shell 解释器种类众多,当前系统的支持的解释器可以在/etc/shells 文件里查看: [wbyq@wbyq linux_c]$ cat /etc/shells /bin/bash...Shell脚本的基本语法规则 创建一个简单的脚本文件并运行: [wbyq@wbyq linux_c]$ vim shell.sh [wbyq@wbyq linux_c]$ ls /bin/sh -l lrwxrwxrwx.... 1 root root 4 7月 1 2019 /bin/sh -> bash [wbyq@wbyq linux_c]$ ls shell.sh [wbyq@wbyq linux_c]$ ..../shell.sh 12345 jsdsdsd [wbyq@wbyq linux_c]$ sh shell.sh 12345 jsdsdsd Shell脚本一些规则总结: 在脚本代码里#表示注释,并且只是支持单行注释...[ $i -eq $j ] then break 1 fi done printf "\n" done [wbyq@wbyq linux_c
一、BMP图片顺时针180°镜像 1.1 原图片 image.png 1.2 编译运行过程 [wbyq@wbyq linux_c]$ gcc app.c [wbyq@wbyq linux_c]$ ls...1.bmp 1.c 2.c 666.bmp 888.bmp a.out app.c test.c [wbyq@wbyq linux_c]$ ..../a.out [wbyq@wbyq linux_c]$ ./a.out 888.bmp 2.bmp 原图片头读取14字节. 原图片类型:BM....; free(one_line_data); return 0; } 二、BMP图片顺时针180°翻转 2.1 原图片 image.png 2.2 编译运行过程 [wbyq@wbyq linux_c...]$ gcc app.c [wbyq@wbyq linux_c]$ .
系统时间设置的方法如下:需要有管理员权限 [wbyq@wbyq linux_c]$ date -s "2020-10-12 9:28:20" date: 无法设置日期: 不允许的操作 2020年 10月...12日 星期一 09:28:20 CST [wbyq@wbyq linux_c]$ sudo date -s "2020-10-12 9:28:20" [sudo] password for wbyq...: 2020年 10月 12日 星期一 09:28:20 CST [wbyq@wbyq linux_c]$ RTC时间掉电不会停止运行,电源是后备电源单独供给的;可以一直运行,方便给系统提供准确的时间...sighandler_func); //定义一个闹钟 alarm(1); while(1) { } return 0; } 运行效果: [wbyq@wbyq linux_c...]$ gcc app.c [wbyq@wbyq linux_c]$ .
const char *src=v_src; char *dst=v_dst; while(c--)*dst++=*src++; return v_dst; } 四、运行示例 [wbyq@wbyq linux_c...]$ gcc app.c [wbyq@wbyq linux_c]$ ..../a.out src.bmp new.bmp 80 80 [wbyq@wbyq linux_c]$ ....路径:程序运行路径下 [wbyq@wbyq linux_c]$ eog 1.bmp
types.h> #include #include #include #include //[wbyq@wbyq linux_c...types.h> #include #include #include #include //[wbyq@wbyq linux_c...types.h> #include #include #include #include //[wbyq@wbyq linux_c...stat.h> #include #include #include #include //[wbyq@wbyq linux_c
root@wbyq:/mnt/hgfs/linux-share-dir/linux_c/usb_dev_ubuntu# uname -r 5.3.0-40-generic 2.2 挂载 debugfs...文件系统 root@wbyq:/mnt/hgfs/linux-share-dir/linux_c/usb_dev_ubuntu# mount -t debugfs none_debugs /sys/kernel.../kernel/debug: none_debugs already mounted or mount point busy. root@wbyq:/mnt/hgfs/linux-share-dir/linux_c...2.3 查看系统是否安装usbmon 模块 root@wbyq:/mnt/hgfs/linux-share-dir/linux_c/usb_dev_ubuntu# ls /sys/module/usbmon...2.4 查看usbmon可以识别到的USB总线编号 root@wbyq:/mnt/hgfs/linux-share-dir/linux_c/usb_dev_ubuntu# ls /sys/kernel
sysinfo函数的帮助页如下: wbyq@wbyq:/mnt/hgfs/linux-share-dir/linux_c$ man sysinfo SYSINFO(2)
/include_file/app.h" //#include "/mnt/hgfs/linux-share-dir/linux_c/include_file/app.h" /* #include.../include_file目录下寻找头文件 #include "include_file/app.h" #include "/mnt/hgfs/linux-share-dir/linux_c/include_file
) 【SeeMusic】视频编辑 ( 视频时间同步 | 视频透明度 | 视频缩放 | 视频转换框 ) 【SeeMusic】视频编辑 ( 视频 X 坐标 | 视频 Y 坐标 | 视频旋转 | 视频扭曲...) ---- 文章目录 SeeMusic 系列文章目录 前言 一、视频位置相关选项 1、视频 X 坐标 ( Position X ) 2、视频 Y 坐标 ( Position Y ) 3、视频旋转...【SeeMusic】视频编辑 ( 视频时间同步 | 视频透明度 | 视频缩放 | 视频转换框 ) 中介绍了视频的 同步 , 透明度 , 缩放 , 转换框 的相关设置 ; 一、视频位置相关选项 ----...1、视频 X 坐标 ( Position X ) 视频 X 坐标 ( Position X ) : 视频的 X 原始坐标是居中 ; Position X 为 0 时 , 视频居中显示 ; Position..., 视频向左平移 ; Position X 属性值为 +20 时 , 视频向右平移 ; 2、视频 Y 坐标 ( Position Y ) 视频 Y 坐标 ( Position Y ) : 视频的
关闭文件*/ fclose(fp); free(head_p); return 0; } 四、运行效果 [wbyq@wbyq linux_c]$ gcc app.c [wbyq...@wbyq linux_c]$ ....[wbyq@wbyq linux_c]$ eog 1.bmp
${pid_val} > 0 ] then echo "查找的进程存在" else echo "查找的进程不存在" #重新启动 /mnt/hgfs/linux-share-dir/linux_c
) 【SeeMusic】视频编辑 ( 视频时间同步 | 视频透明度 | 视频缩放 | 视频转换框 ) ---- 文章目录 SeeMusic 系列文章目录 前言 一、进入视频编辑页面 二、视频编辑选项...1、视频时间同步 ( Vedio Time Sync ) 2、视频透明度 ( Opacity ) 3、视频缩放 ( Scale ) 4、视频转换框是否显示 ( Vedio Transform Box..., 在编辑页面 , 点击视频设置按钮 ; 进入到视频设置页面 , 在该界面 , 可以设置视频的相关参数 ; 二、视频编辑选项 ---- 1、视频时间同步 ( Vedio Time Sync...: 这是 50% 透明效果 : 透明度到了 0 完全不可见 ; 3、视频缩放 ( Scale ) 视频缩放 ( Scale ) : 视频宽高的缩放 , 如 1920 x 1080 的视频 , 原始大小是...200% ; 视频缩放 ( Scale ) 属性的原始大小 100 的效果 : 视频缩放 ( Scale ) 属性的 50 的效果 : 视频的宽高都缩小了一半 ; 视频缩放 ( Scale )
领取专属 10元无门槛券
手把手带您无忧上云