From c3a454d9d032b64a15c1ac37e131f41d7e37abc8 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 26 Jul 2022 22:34:36 +0800 Subject: [PATCH 1/2] RP @wxy https://linux.cn/article-14867-1.html --- ...3 How I create music playlists on Linux.md | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) rename {translated/tech => published}/20220713 How I create music playlists on Linux.md (76%) diff --git a/translated/tech/20220713 How I create music playlists on Linux.md b/published/20220713 How I create music playlists on Linux.md similarity index 76% rename from translated/tech/20220713 How I create music playlists on Linux.md rename to published/20220713 How I create music playlists on Linux.md index 4b43793dea..44e98c8273 100644 --- a/translated/tech/20220713 How I create music playlists on Linux.md +++ b/published/20220713 How I create music playlists on Linux.md @@ -3,32 +3,31 @@ [#]: author: "Rikard Grossman-Nielsen https://opensource.com/users/rikardgn" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -如何在 Linux 上创建音乐播放列表 +如何编写 C 程序在 Linux 上创建音乐播放列表 ====== -使用我在 Linux 上制作的这个 C 程序在旅途中聆听你喜爱的歌曲。 -![Open source software helps artists create music][1] +![](https://img.linux.net.cn/data/attachment/album/202207/26/223349t4yiqd1yikb9k117.jpg) -图片来源:Opensource.com +> 使用我在 Linux 上制作的这个 C 程序在旅途中聆听你喜爱的歌曲。 -我最近在 Linux 中编写了一个 C 程序,从我广泛的 MP3 库中创建一个较小的随机 MP3 文件选择。该程序会遍历一个包含我的 MP3 库的目录,然后创建一个包含随机的、较小的歌曲选择的目录。然后我将 MP3 文件复制到我的智能手机上,以便随时随地收听。 +我最近在 Linux 中编写了一个 C 程序,从我广泛的 MP3 库中创建一个较小的随机 MP3 文件选集。该程序会遍历一个包含我的 MP3 库的目录,然后创建一个包含随机的、较小的歌曲选集的目录。然后我将这些 MP3 文件复制到我的智能手机上,以便随时随地收听。 瑞典是一个人口稀少的国家,有许多农村地区没有完整的手机覆盖。这就是在智能手机上拥有 MP3 文件的原因之一。另一个原因是我并不总是有钱购买流媒体服务,所以我喜欢拥有自己喜欢的歌曲的副本。 -你可以从它的 [Git 仓库][2]下载我的应用。我专门为 Linux 编写了它,部分原因是在 Linux 上很容易找到经过良好测试的文件 I/O 例程。多年前,我尝试使用专有的 C 库在 Windows 上编写相同的程序,但在尝试文件复制时遇到了困难。 Linux 使用户可以轻松直接地访问文件系统。 +你可以从它的 [Git 仓库][2] 下载我的应用。我专门为 Linux 编写了它,部分原因是在 Linux 上很容易找到经过良好测试的文件 I/O 例程。多年前,我尝试使用专有的 C 库在 Windows 上编写相同的程序,但在尝试文件复制时遇到了困难。Linux 使用户可以轻松直接地访问文件系统。 本着开源的精神,我没费多少力气就找到了 Linux 的文件 I/O 代码来激发我的灵感。我还发现了一些启发了我的分配内存的代码。我编写了随机数生成的代码。 该程序的工作方式如下所述: -1. 请求源目录和目标目录。 -2. 请求 MP3 文件目录下的文件个数。 -3. 搜索你希望复制的收藏的百分比(从 1.0% 到 88.0%)。如果你有 1000 个文件的集合并希望从你的集合中复制 125 个文件而不是 120 个文件,你也可以输入 12.5% 之类的数字。我将上限设置为 88%,因为复制超过 88% 的库将基本生成与你的基础库相似的库。当然,代码是开源的,因此你可以根据自己的喜好自由修改。 -4. 使用指针和 malloc 分配内存。一些操作需要内存,包括代表音乐收藏中文件的字符串列表。还有一个列表来保存随机生成的数字。 +1. 询问源目录和目标目录。 +2. 询问存放 MP3 文件的目录下的文件个数。 +3. 搜索你希望复制的收藏的百分比(从 1.0% 到 88.0%)。如果你有 1000 个文件的集合,并希望从你的集合中复制 125 个文件而不是 120 个文件,你也可以输入 12.5% 之类的数字。我将上限设置为 88%,因为复制超过 88% 的库将基本生成与你的基础库相似的库。当然,代码是开源的,因此你可以根据自己的喜好自由修改。 +4. 使用指针和 `malloc` 分配内存。一些操作需要内存,包括代表音乐收藏中文件的字符串列表。还有一个列表来保存随机生成的数字。 5. 生成所有文件范围内的随机数列表(例如,如果集合有 1000 个文件,则为 1 到 1000)。 6. 复制文件。 @@ -181,13 +180,13 @@ while(1) { } ``` -这将从指定的文件中读取多个字节 (readByteCount) 到字符缓冲区中。该函数的第一个参数是文件名(srcFileDesc)。第二个参数是一个指向字符缓冲区的指针,这之前在程序中声明过。该函数的最后一个参数是缓冲区的大小。 +这将从指定的文件中读取多个字节(`readByteCount`)到字符缓冲区中。该函数的第一个参数是文件名(`srcFileDesc`)。第二个参数是一个指向字符缓冲区的指针,这之前在程序中声明过。该函数的最后一个参数是缓冲区的大小。 程序返回读取的字节数(在本例中为 4 个字节)。如果返回的数字为 0 或更少,则第一个 `if` 子句会跳出循环。 如果读取字节数为 0,则所有写入完成,循环中断以写入下一个文件。如果读取的字节数小于 0,则发生错误并退出程序。 -当读取 4 个字节时,它会写入它们。write 函数接受三个参数。第一个是要写入的文件,第二个是字符缓冲区,第三个是要写入的字节数(4 个字节) .该函数返回写入的字节数。 +当读取 4 个字节时,它会写入它们。`write` 函数接受三个参数。第一个是要写入的文件,第二个是字符缓冲区,第三个是要写入的字节数(4 个字节) .该函数返回写入的字节数。 如果写入了 0 个字节,则发生了写入错误,因此第二个 `if` 子句退出程序。 @@ -206,7 +205,7 @@ via: https://opensource.com/article/22/7/c-linux-mp3 作者:[Rikard Grossman-Nielsen][a] 选题:[lkxed][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From f7bdf995cebfc5b8d4c718aafad6095e5af7018e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 26 Jul 2022 22:36:45 +0800 Subject: [PATCH 2/2] P --- published/20220713 How I create music playlists on Linux.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/published/20220713 How I create music playlists on Linux.md b/published/20220713 How I create music playlists on Linux.md index 44e98c8273..708acec8c8 100644 --- a/published/20220713 How I create music playlists on Linux.md +++ b/published/20220713 How I create music playlists on Linux.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "geekpi" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-14868-1.html" 如何编写 C 程序在 Linux 上创建音乐播放列表 ======