Linux中_银河麒麟V4.0.2_使用中_遇到问题_及解决_记录
1、银河麒麟 V4.0.2 使用,桌面太大了,必须要使用滑动条往下拉才能看到最底下的任务栏?
可以尝试以下解决方案:
1、调整分辨率:右键点击桌面空白处,选择“显示设置”或者类似的选项(具体名称可能会有所不同)。在显示设置中,尝试调整屏幕分辨率为更低的选项,以适应您的可视范围。
2、调整显示缩放比例:在系统设置中找到“显示”或“外观”选项,尝试调整显示缩放比例。减小缩放比例可以使整个桌面缩小,适应屏幕。
3、调整桌面图标大小:在桌面上右键点击,选择“更改桌面背景”或“桌面设置”,找到关于图标大小的选项,尝试减小图标大小以适应屏幕。
4、使用多个桌面:有些操作系统可以支持多个桌面,您可以尝试将一些不常用的图标或文件放在其他桌面上,以减少主桌面的拥挤感。
5、安装第三方桌面管理工具:您可以考虑安装一些第三方的桌面管理工具,这些工具往往提供各种自定义选项,可以帮助您更好地管理和布局桌面空间。
2、tcpdump抓包问题:
1、tcpdump: ehth0:You dont have permission to captue on that device(socket: operation not pemitted)
tcpdump:ehth0:您没有在该设备上进行captue的权限(套接字:操作未完成)
解决:
需要sudo 权限来执行。
2、tcpdump: pcapsender: no such file or directory。
tcpdump:papsender_1_1_1_2023/07/12/_15:05:38.pcap:没有这样的文件或目录
解决:
linux文件命名中一般是不能使用 / 跟 : 。
将 / 换成 - ,: 换成 - 。就好了可以了。
3、linux 中通过tee把程序日志重定向到log.txt文本文件中,有时候重定向到log文件中的日志会缺失程序中最后面结束前的一部分输出日志,这一部分日志是一定会输出的,但是有时候会缺失,日志文件中没有,终端输出也没有?
在Linux中,使用tee命令可以将程序的输出同时输出到终端和文件中。但是,有时候在重定向到文件时,可能会出现缺失最后一部分输出日志的情况。这可能是由于缓冲区的刷新机制导致的。
默认情况下,标准输出(stdout)是带有缓冲区的,当缓冲区被填满或者遇到换行符时,才会将缓冲区的内容刷新到文件中。因此,如果程序在结束前没有输出换行符或者缓冲区没有填满,那么最后一部分输出可能会被丢失。
可以尝试以下方法来解决缺失日志的问题:
1. 可以使用std::endl或者std::flush来手动刷新缓冲区。std::endl会输出一个换行符并刷新缓冲区,而std::flush只会刷新缓冲区而不输出换行符。
刷新操作单独写一行:
std::cout << std::endl;
或:
std::cout.flush();
刷新操作跟在日志输出后面:
std::cout << "Logging message " << i << std::endl;
或:
std::cout << "Logging message " << i << std::flush;
使用 std::endl 比使用 std::cout.flush() 会更消耗性能,
因为 std::endl 不仅会刷新缓冲区,还会在最后插入一个换行符。
而 std::cout.flush() 只会刷新缓冲区。
因此,如果你只需要刷新缓冲区而不需要额外的换行符,建议使用 std::cout.flush()。
总结起来,你可以根据需要选择将手动刷新缓冲区的语句单独写在一行,或者与日志输出放在同一行。
2.强制刷新缓冲区:在程序中适当的位置使用fflush函数来强制刷新输出缓冲区,确保日志被及时写入文件,例如:
```
fflush(stdout);
```
3. 调整程序的输出缓冲大小:使用setvbuf函数来调整程序的输出缓冲大小,可以将缓冲区设置得更小一些,例如:
```
setvbuf(stdout, NULL, _IOFBF, 1024); // 将缓冲区大小设置为1024字节
```
stdout是C语言标准库中定义的一个指向标准输出流的指针变量。它是一个预定义的文件指针,用于表示标准输出设备,通常是显示器。在标准库中,stdout指针被定义为FILE类型的变量,可以通过stdio.h头文件引入。使用stdout指针可以对标准输出进行各种操作,比如输出数据到屏幕上。
4. 使用无缓冲模式重定向输出:使用`stdbuf`命令来修改程序的输出缓冲模式。例如:
`command | stdbuf -o0 tee log.txt`。 `-o0`参数表示禁用输出缓冲。
5. 强制刷新缓冲区:可以使用`stdbuf`命令的`-oL`参数,它会设置行缓冲模式,即每输出一行就会刷新缓冲区。例如,你可以这样使用tee命令:
```
command | stdbuf -oL tee log.txt
```
这样,每次输出一行日志时,缓冲区都会被刷新到log.txt文件中,确保不会缺失任何日志。
6. 使用unbuffer命令:unbuffer命令可以禁用程序的输出缓冲。例如:
`unbuffer command | tee log.txt`。
7. 使用其他工具:除了tee命令,还可以尝试其他工具来重定向日志,如nohup、script等。
如果以上方法仍然无法解决问题,可能需要查看程序本身的日志输出机制,以确定是否有特殊的输出行为或缓冲设置。
4、问题:ubuntu下安装qt5.9.9后,创建新程序然后编译,报错“-1: error: cannot find -lGL”。
原因:
Qt 安装好后,其实里面已经有OpenGL库了,不过库文件名字是libGLSL.so,不是标准的libGL.so。
解决办法:
使用如下命令创建软链接,然后重新编译。
ln -s /home/user/Qt5.9.9/Tools/QtCreator/lib/qtcreator/libGLSL.so /usr/lib/libGL.so
————————————————
版权声明:本文为CSDN博主「草丛中的蝈蝈」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43248127/article/details/118696456