linux创建自动生成文件夹的c语言并执行
时间: 2023-05-26 08:04:36 浏览: 89
要在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
```
该程序将在当前目录下创建一个以当前日期命名的文件夹。
当然,您还需要在代码上添加错误处理,比如检查文件夹是否存在,以及在创建文件夹时是否发生了错误等。
相关问题
linux 创建c语言项目
在Linux上创建C语言项目通常涉及以下几个步骤:
1. **安装必要的工具**:
- 安装GCC (GNU Compiler Collection),这是Linux中最常用的C/C++编译器。
- 可能需要安装make工具,用于自动化构建过程。
2. **选择代码编辑器**:
Linux下有很多文本编辑器可以选择,如vim、emacs、gedit或VS Code等,你喜欢哪一个就用哪个。
3. **创建项目目录**:
创建一个文件夹,比如`my_c_project`,作为项目的根目录。
4. **编写源码**:
使用文本编辑器,在项目目录下新建`.c`文件,例如`main.c`,开始编写C代码。
5. **设置Makefile**:
在项目目录下创建一个名为`Makefile`的文件,这是一个自定义脚本,告诉编译器如何编译你的代码。基本结构可能像这样:
```makefile
CC = gcc
SOURCE = main.c
OBJECTS = $(SOURCE:.c=.o)
EXECUTABLE = my_program
all: $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) -o $@ $^
%.o: %.c
$(CC) -c $< -o $@
```
6. **编译并运行**:
打开终端,导航到项目目录,然后输入`make`命令来编译程序。如果一切顺利,会生成一个可执行文件(如`my_program`),你可以通过输入`./my_program`运行它。
在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图片,且图片内容与原始图片相同。
阅读全文