您的位置:首页 > 财经 > 金融 > 网络应用服务管理_上海百度公司_网站维护工程师_深圳网络推广网络

网络应用服务管理_上海百度公司_网站维护工程师_深圳网络推广网络

2024/11/16 9:20:29 来源:https://blog.csdn.net/wangmeng0804/article/details/142813316  浏览:    关键词:网络应用服务管理_上海百度公司_网站维护工程师_深圳网络推广网络
网络应用服务管理_上海百度公司_网站维护工程师_深圳网络推广网络
#include <stdio.h>
#include <dirent.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <signal.h>
#include <stdlib.h>
#include <string.h>#define BUFFER_SIZE 1024void open_and_display_file(const char *filepath, const char *dir)
{unsigned char Decode = 0;static int image_id = 0;unsigned char imagePath[PATH_MAX] = {0};unsigned char buffer[BUFFER_SIZE] = {0};FILE *imageFp = NULL;FILE *file = NULL;int read_len = 0;int write_len = 0;sprintf(imagePath, "%s/%d.png", dir, image_id);image_id++;file = fopen(filepath, "r");if (file == NULL){perror("无法打开文件:");return;}imageFp = fopen(imagePath, "wb+");if (imageFp == NULL){perror("无法打开文件:");return;}ftruncate(fileno(imageFp), 0);fread(buffer, 1, 2, file);int mData1 = buffer[0] ^ 0xFF;int mData2 = buffer[1] ^ 0xD8;printf("mData1 %X  mData2  %x\n", mData1, mData2);if (mData1 == mData2){Decode = mData1;printf("Decode JPEG found %X %x %x\n", buffer[0], buffer[1], Decode);}else{printf("Decode JPEG not found %X %x %x\n", buffer[0], buffer[1], Decode);mData1 = buffer[0] ^ 0x89;mData2 = buffer[1] ^ 0x50;if (mData1 == mData2){Decode = mData1;printf("Decode PNG found %X %x %x\n", buffer[0], buffer[1], Decode);}else{printf("Decode PNG not found %X %x %x\n", buffer[0], buffer[1], Decode);}}fseek(file, 0, SEEK_SET);while (!feof(file)){read_len = fread(buffer, 1, BUFFER_SIZE, file);for (int i = 0; i < read_len; i++){buffer[i] ^= Decode;}write_len = fwrite(buffer, 1, read_len, imageFp);}fclose(file);fclose(imageFp);
}int main(int argc, char *argv[])
{if (argc != 2){fprintf(stderr, "用法: %s 目录路径\n", argv[0]);return 1;}const char *directory_path = argv[1];DIR *dir;struct dirent *entry;if ((dir = opendir(directory_path)) == NULL){perror("无法打开目录:");return 1;}while ((entry = readdir(dir)) != NULL){if (strcmp(entry->d_name, ".") != 0 && strcmp(entry->d_name, "..") != 0){char filepath[PATH_MAX];snprintf(filepath, PATH_MAX, "%s/%s", directory_path, entry->d_name);open_and_display_file(filepath, directory_path);}}closedir(dir);return 0;
}

相关的桌面程序在我的资源列表里面可以下载

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com