编写一个用户程序的源代码文件,实现目录列表、改变目录和删除文件等基本功能
时间: 2024-02-04 13:04:30 浏览: 26
以下是一个简单的用户程序源代码,实现了目录列表、改变目录和删除文件等基本功能:
```c
#include <stdio.h>
#include <dirent.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
void list_dir(char *path) {
DIR *dir;
struct dirent *entry;
if ((dir = opendir(path)) == NULL) {
perror("opendir");
return;
}
while ((entry = readdir(dir)) != NULL) {
printf("%s\n", entry->d_name);
}
closedir(dir);
}
void change_dir(char *path) {
if (chdir(path) == -1) {
perror("chdir");
}
}
void delete_file(char *filename) {
if (remove(filename) == -1) {
perror("remove");
}
}
int main(int argc, char *argv[]) {
if (argc < 2) {
printf("Usage: %s <command> [argument]\n", argv[0]);
return 0;
}
if (strcmp(argv[1], "ls") == 0) { // 列出目录内容
list_dir(".");
} else if (strcmp(argv[1], "cd") == 0) { // 改变当前目录
if (argc < 3) {
printf("Usage: %s cd <directory>\n", argv[0]);
return 0;
}
change_dir(argv[2]);
} else if (strcmp(argv[1], "rm") == 0) { // 删除文件
if (argc < 3) {
printf("Usage: %s rm <filename>\n", argv[0]);
return 0;
}
delete_file(argv[2]);
} else {
printf("Unknown command: %s\n", argv[1]);
}
return 0;
}
```
该程序接受命令行参数,支持三个基本命令:ls、cd 和 rm,分别实现目录列表、改变目录和删除文件等功能。在调用这些函数时,需要注意参数的正确性和错误处理。