linux创建自动生成文件夹的c语言并执行
时间: 2023-05-26 13:04:36 浏览: 56
要在Linux中创建自动生成文件夹的C程序,您可以使用以下代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <sys/stat.h>
int main() {
time_t t = time(NULL);
struct tm tm = *localtime(&t);
char folder_name[256];
sprintf(folder_name, "%04d-%02d-%02d", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday);
mkdir(folder_name, 0777);
return 0;
}
```
此程序会在当前目录下创建一个以当前日期命名的文件夹。您可以将其保存为一个C源文件(例如“create_folder.c”),然后使用以下命令将其编译成可执行文件:
```
gcc create_folder.c -o create_folder
```
将生成一个名为“create_folder”的可执行文件。您可以通过运行以下命令来执行该程序:
```
./create_folder
```
该程序将在当前目录下创建一个以当前日期命名的文件夹。
当然,您还需要在代码上添加错误处理,比如检查文件夹是否存在,以及在创建文件夹时是否发生了错误等。
相关问题
用C语言编写Linux内核驱动程序时生成.ko等文件,Makefile怎么编写
Makefile 是用于自动化编译和构建的工具,可以帮助我们编译驱动程序并生成 .ko 文件。下面是一个简单的 Makefile 示例:
```
obj-m := driver.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean
```
上述 Makefile 中,`obj-m` 定义了要编译的模块文件名,`KDIR` 定义了内核源代码的路径,`PWD` 定义了当前路径。`default` 为默认目标,`clean` 用于清理编译生成的文件。
在终端中进入驱动程序所在的文件夹,执行 `make` 命令即可编译生成 .ko 文件。如果要清理编译生成的文件,可以执行 `make clean` 命令。
在linux系统下,用c语言编写用opencv将路径/root/photo/compressphoto中的.jpg图片解压缩到路径/root/photo/decompressphoto中,给出相应程序和对应的Makefile文件,注意opencv文件处于/root/opencv-4.5.1文件夹中。并说明效果
以下是相应程序和Makefile文件:
程序(decompress.c):
```
#include <stdio.h>
#include <stdlib.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
if (argc != 3)
{
printf("Usage: %s <input_folder> <output_folder>\n", argv[0]);
return -1;
}
String inputFolder = argv[1];
String outputFolder = argv[2];
std::vector<String> filenames;
glob(inputFolder, filenames);
for (size_t i = 0; i < filenames.size(); i++)
{
Mat image = imread(filenames[i], IMREAD_UNCHANGED);
if (image.empty())
{
printf("Failed to load image: %s\n", filenames[i].c_str());
continue;
}
String outputPath = outputFolder + "/" + filenames[i].substr(filenames[i].find_last_of("/") + 1);
imwrite(outputPath, image);
}
return 0;
}
```
Makefile文件:
```
CC = g++
CFLAGS = `pkg-config --cflags opencv4`
LIBS = `pkg-config --libs opencv4`
all: decompress
decompress: decompress.o
$(CC) $(CFLAGS) -o decompress decompress.o $(LIBS)
decompress.o: decompress.c
$(CC) $(CFLAGS) -c decompress.c
clean:
rm -f decompress decompress.o
```
使用方法:
1. 将decompress.c和Makefile文件保存在/root/photo/decompressphoto文件夹中。
2. 在终端中进入/root/photo/decompressphoto文件夹。
3. 执行命令make编译程序。
4. 执行命令./decompress /root/photo/compressphoto /root/photo/decompressphoto以解压缩/root/photo/compressphoto中的.jpg图片到/root/photo/decompressphoto中。
效果:
1. /root/photo/compressphoto中有若干个.jpg图片。
2. 执行命令./decompress /root/photo/compressphoto /root/photo/decompressphoto后,/root/photo/decompressphoto中会生成与/root/photo/compressphoto中相同的.jpg图片,且图片内容与原始图片相同。