微网站制作,中国分类信息平台,优酷网站建设视频教程集,网站建设的利益分析每日总结
20240219
1.文件类型.csv
CSV文件是一种以逗号分隔值#xff08;Comma-Separated Values#xff09;为标记的文本文件#xff0c;它可以用来存储表格数据。每一行表示一条记录#xff0c;而每一条记录中的字段则使用逗号或其他特定的分隔符进行分隔。
常用场景…每日总结
20240219
1.文件类型.csv
CSV文件是一种以逗号分隔值Comma-Separated Values为标记的文本文件它可以用来存储表格数据。每一行表示一条记录而每一条记录中的字段则使用逗号或其他特定的分隔符进行分隔。
常用场景包括
数据导出与导入CSV文件是许多软件应用程序用来导出和导入数据的标准格式。例如数据库软件、电子表格软件、统计分析软件等都支持CSV格式用户可以将数据以CSV格式导出然后在其他软件中进行处理或分析。数据交换CSV文件是在不同系统之间交换数据的常见方式。由于它是一种纯文本格式易于阅读和编辑并且几乎所有的软件都支持导入和导出CSV文件因此它成为了数据交换的理想选择。数据备份在一些情况下CSV文件被用作数据备份的形式。将数据导出为CSV文件可以轻松地保存数据并在需要时进行恢复。由于它是一种通用格式因此即使原始数据源不可用也可以通过CSV文件来还原数据。批量处理在一些编程任务中CSV文件也常被用来作为批量处理数据的输入或输出格式。程序员可以使用各种编程语言读取和写入CSV文件进行数据处理、分析、转换等操作。网站数据交换许多网站提供数据导出功能允许用户将数据以CSV格式下载。这在数据分析、报告生成等方面非常有用用户可以将网站上的数据导出为CSV文件然后在本地进行处理和分析。
总之CSV文件是一种简单、通用的数据存储格式在各种场景下都得到了广泛应用特别适用于数据交换、导入导出以及批量处理等任务。
2.GLib库
GLib 是一个 C 语言的通用工具库提供了许多实用的功能其主要功能包括https://docs.gtk.org/glib/
数据结构GLib 提供了许多常用的数据结构如链表、双向链表、哈希表、数组、树等。这些数据结构提供了高效的插入、删除和查找操作方便在 C 语言中进行数据处理和管理。内存管理GLib 提供了内存分配和管理的功能包括动态内存分配、内存池、引用计数等。它的内存管理功能对于减少内存泄漏和提高程序性能非常有用。线程和并发GLib 提供了线程管理、互斥锁、条件变量等功能支持多线程编程和并发处理。它提供了易于使用的接口使得在 C 语言中进行多线程编程变得更加简单和安全。事件循环GLib 提供了事件循环Event Loop机制用于处理事件驱动的程序例如 GUI 应用程序、网络服务器等。它支持定时器、文件描述符监视、信号处理等功能能够高效地处理各种事件。IO 和文件操作GLib 提供了文件操作、文件路径处理、IO 通道等功能使得在 C 语言中进行文件和 IO 操作变得更加方便和可靠。字符串处理GLib 提供了字符串操作、格式化输出、字符串拼接等功能方便对字符串进行处理和操作。线程池和异步操作GLib 提供了线程池和异步操作的支持使得在 C 语言中进行异步编程变得更加简单和高效。
GLib 在以下情况下特别有用
当需要进行 C 语言编程但是希望使用高级的数据结构和工具时可以使用 GLib 来简化开发流程。当需要进行多线程编程或并发处理时GLib 提供了方便的线程管理和同步机制。当需要开发事件驱动的程序如 GUI 应用程序、网络服务器等时GLib 提供了事件循环和异步操作的支持。当需要进行字符串处理、文件操作、内存管理等操作时GLib 提供了丰富的功能库可以减少开发工作量和提高程序性能。
GLib 的优势包括
跨平台性GLib 是一个跨平台的库可以在多种操作系统上运行包括 Linux、Windows、macOS 等。丰富的功能GLib 提供了许多实用的功能和工具包括数据结构、线程管理、事件循环、IO 操作等可以满足各种开发需求。高效性GLib 提供了高效的实现和算法能够在性能和资源利用方面做到较好的平衡。易用性GLib 提供了简单易用的 API使得开发者可以更加快速地编写和调试代码提高开发效率。稳定性GLib 是一个经过充分测试和验证的库具有较高的稳定性和可靠性被广泛应用于各种大型项目和开源软件中。
2.1 API #define GUINT32_TO_BE(val) GUINT32_SWAP_LE_BE(val) GUINT32_TO_BE 是 GLib 库中的一个宏用于将 32 位的整数从主机字节序转换为网络字节序大端字节序。在网络编程中经常需要进行字节序转换以确保数据在不同平台之间正确传输和解释。 #define GUINT32_FROM_BE(val) GUINT32_SWAP_LE_BE(val) GUINT32_FROM_BE 是 GLib 库中的一个宏用于将 32 位的整数从网络字节序大端字节序转换为主机字节序。在网络编程中经常需要进行字节序转换以确保数据在不同平台之间正确传输和解释。 g_strsplit() 定义g_strsplit() 是 GLib 库中的一个函数用于将一个字符串根据指定的分隔符进行分割返回一个字符串数组。原型gchar **g_strsplit(const gchar *string, const gchar *delimiter, gint max_tokens);参数 string要分割的源字符串。delimiter用于分割字符串的分隔符。max_tokens最大分割次数为负数表示不限制分割次数。 返回值返回一个字符串数组数组中的每个元素是分割后的子字符串。功能g_strsplit() 函数根据指定的分隔符将源字符串分割成多个子字符串并将这些子字符串存储在一个字符串数组中返回。 strtol() 定义strtol() 是 C 标准库中的函数用于将字符串转换为长整型数。原型long strtol(const char *nptr, char **endptr, int base);参数 nptr待转换的字符串。endptr如果不为空并且未发生错误则会存储在此指针中指向转换结束后的字符串的位置。base转换使用的进制通常为 2、8、10 或 16。 返回值返回转换后的长整型数。功能strtol() 函数将字符串 nptr 中的数字部分转换为长整型数并返回结果。它还可以将剩余的未转换部分指示给 endptr。
2.2 网络编程相关
1. g_socket_new
定义创建一个新的套接字对象。原型GSocket* g_socket_new(GSocketFamily family, GSocketType type, GSocketProtocol protocol, GError **error);参数 family地址族例如 G_SOCKET_FAMILY_IPV4 或 G_SOCKET_FAMILY_IPV6。type套接字类型例如 G_SOCKET_TYPE_STREAM流套接字或 G_SOCKET_TYPE_DATAGRAM数据报套接字。protocol协议类型例如 G_SOCKET_PROTOCOL_TCP 或 G_SOCKET_PROTOCOL_UDP。error返回的错误对象。 返回值返回一个新的 GSocket 对象。
2. g_inet_socket_address_new_from_string
定义根据字符串创建一个网络地址对象。原型GInetSocketAddress* g_inet_socket_address_new_from_string(const gchar *address, guint16 port);参数 addressIP 地址字符串。port端口号。 返回值返回一个新的 GInetSocketAddress 对象。
3. g_inet_address_new_from_string
定义根据字符串创建一个 IP 地址对象。原型GInetAddress* g_inet_address_new_from_string(const gchar *string);参数 stringIP 地址字符串。 返回值返回一个新的 GInetAddress 对象。
4. g_inet_socket_address_new
定义创建一个新的网络地址对象。原型GInetSocketAddress* g_inet_socket_address_new(GInetAddress *address, guint16 port);参数 addressGInetAddress 对象。port端口号。 返回值返回一个新的 GInetSocketAddress 对象。
5. g_socket_bind
定义将套接字绑定到指定的地址和端口。原型gboolean g_socket_bind(GSocket *socket, GSocketAddress *address, gboolean allow_reuse, GError **error);参数 socketGSocket 对象。address要绑定的地址。allow_reuse是否允许地址重用。error返回的错误对象。 返回值绑定成功返回 TRUE否则返回 FALSE。
6. g_socket_connect
定义与远程主机建立连接。原型gboolean g_socket_connect(GSocket *socket, GSocketAddress *address, GCancellable *cancellable, GError **error);参数 socketGSocket 对象。address远程主机地址。cancellable可取消的操作。error返回的错误对象。 返回值连接成功返回 TRUE否则返回 FALSE。
7. g_socket_is_connected
定义检查套接字是否已连接到远程主机。原型gboolean g_socket_is_connected(GSocket *socket);参数 socketGSocket 对象。 返回值如果套接字已连接到远程主机则返回 TRUE否则返回 FALSE。
8. g_socket_condition_check
定义检查套接字的状态。原型GIOCondition g_socket_condition_check(GSocket *socket, GIOCondition condition);参数 socketGSocket 对象。condition要检查的条件如读取、写入、错误等。 返回值返回套接字的状态。
9. g_socket_receive
定义从套接字接收数据。原型gssize g_socket_receive(GSocket *socket, gpointer buffer, gsize size, GCancellable *cancellable, GError **error);参数 socketGSocket 对象。buffer接收数据的缓冲区。size要接收的数据大小。cancellable可取消的操作。error返回的错误对象。 返回值返回接收到的字节数。
10. g_socket_send
定义向套接字发送数据。原型gssize g_socket_send(GSocket *socket, const gpointer buffer, gsize size, GCancellable *cancellable, GError **error);参数 socketGSocket 对象。buffer要发送的数据缓冲区。size要发送的数据大小。cancellable可取消的操作。error返回的错误对象。 返回值返回发送的字节数。
这些函数适用于需要进行网络编程的情况如开发客户端、服务器、网络通信应用等。GLib 提供了一套简单易用的网络 API使得网络编程变得更加方便。
3.cat 与echo
在 Shell 中cat 和 echo 都是用于将文本追加到文件末尾的命令但它们的工作方式略有不同
cat cat 是一个命令用于连接文件并输出它们的内容 是重定向符号用于将输出追加到指定文件的末尾。用法cat filename功能cat 将会等待用户输入文本直到用户按下 Ctrl D 结束输入然后将输入的文本追加到指定的文件末尾。示例cat output.txt 会将用户输入的文本追加到 output.txt 文件的末尾。 echo echo 是一个命令用于在终端上输出指定的字符串 是重定向符号用于将输出追加到指定文件的末尾。用法echo text filename功能echo 直接将指定的文本追加到指定的文件末尾。示例echo Hello, World! output.txt 会将字符串 “Hello, World!” 追加到 output.txt 文件的末尾。
总结
cat 会等待用户输入文本然后将文本追加到文件末尾适用于需要交互式地输入内容的情况。echo 直接将指定的文本追加到文件末尾适用于将已知的字符串追加到文件末尾的情况。
4. shell 中与
在Shell脚本中 和 都是用于重定向输出的操作符但它们有一些重要的区别 操作符 用法command file 或者 echo text file功能将命令的标准输出重定向到指定文件并覆盖文件中的原有内容。如果文件不存在则会创建新文件。示例echo Hello, World! output.txt 将字符串 “Hello, World!” 写入到名为 output.txt 的文件中如果文件不存在则创建如果文件已存在则覆盖原有内容。 操作符 用法command file 或者 echo text file功能将命令的标准输出追加到指定文件的末尾。如果文件不存在则会创建新文件。示例echo Hello, World! output.txt 将字符串 “Hello, World!” 追加到名为 output.txt 的文件末尾如果文件不存在则创建。
总结 用于覆盖文件内容而 用于追加内容到文件末尾。两者都可以将命令的输出重定向到文件但是 会覆盖文件内容而 则会追加到文件末尾。如果你想要保留原有内容并添加新内容就应该使用 操作符。
5. 网络配置文件 /etc/network/interfaces
如下这段文件是 Linux 系统网络配置文件 /etc/network/interfaces 的示例内容它用于配置网络接口的参数包括 IP 地址、子网掩码、网关等。
# 这是注释行用于说明该文件是用于配置网络接口的。
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)#auto lo 和 iface lo inet loopback这两行配置了回环loopback接口 lo这是一个特殊的虚拟接口用于本地回环测试。auto lo 表示系统启动时自动激活该接口iface lo inet loopback 指定了该接口的配置为使用 loopback 模式。
# The loopback interface
auto lo
iface lo inet loopback# Wireless interfaces
# 这一部分配置了一个名为 wlan0 的无线网络接口使用 DHCP 获取 IP 地址。下面几行配置了一些无线接口的特定参数如无线模式 (wireless_mode)、ESSID (wireless_essid)、WPA 配置文件路径 (wpa-conf) 等。
iface wlan0 inet dhcp wireless_mode managedwireless_essid anywpa-driver wextwpa-conf /etc/wpa_supplicant.conf
# iface atml0 inet dhcp这一行配置了一个名为 atml0 的接口使用 DHCP 获取 IP 地址。
iface atml0 inet dhcp# Wired or wireless interfaces
# auto eth0
# iface eth0 inet dhcp
# iface eth1 inet dhcp这一行配置了一个名为 eth1 的以太网接口使用 DHCP 获取 IP 地址。
iface eth1 inet dhcp# Ethernet/RNDIS gadget (g_ether)
# ... or on host side, usbnet and random hwaddr
# 下面一段配置了一个名为 usb0 的 USB 网络接口使用静态 IP 地址。这种配置通常用于在主机和设备之间通过 USB 连接进行网络通信。
iface usb0 inet staticaddress 192.168.7.2netmask 255.255.255.0network 192.168.7.0gateway 192.168.7.1# Bluetooth networking
# iface bnep0 inet dhcp这一行配置了一个名为 bnep0 的 Bluetooth 网络接口使用 DHCP 获取 IP 地址。
iface bnep0 inet dhcp# auto eth0 和 iface eth0 inet static这两行定义了另一个以太网接口 eth0 的配置。auto eth0 表示系统启动时自动激活该接口iface eth0 inet static 指定了该接口的配置为静态 IP 地址模式。# 下面的 address、netmask、gateway 等行指定了 eth0 接口的具体配置参数包括 IP 地址、子网掩码、网关等。
auto eth0
iface eth0 inet staticaddress 192.168.137.81netmask 255.255.255.06.shell参数
$1、$2、$3 是脚本的位置参数即在运行脚本时提供的参数。count${3:-1} 将第三个参数执行次数赋值给变量 count如果未提供第三个参数则默认值为 1。count${3:-1} 这行代码使用了 Bash 中的参数扩展功能具体含义是如果第三个参数 $3 存在并且不为空则将其值赋给变量 count如果第三个参数不存在或为空则将默认值 1 赋给变量 count。 这种语法 var${var:-default} 称为参数扩展它的作用是检查变量是否已经设置若未设置或为空则使用默认值。在这里count 是第三个参数而 :- 表示如果 $3 不存在或为空则使用默认值 1。