C语言实现shell程序---(1)总体框架

通过一个小项目学习一下C语言文件IO操作。基于linux平台开发,win平台没有lstat()这个函数,因此ls功能不能实现。

源码gitee地址:

tinyShell: 实现一个基础的 shell 程序

  • 实现一个基础的 shell 程序,主要完成三个命令的功能 cp、ls和tree
    • cp 命令主要实现:
      • 文件复制
      • 目录复制
    • ls 命令主要实现:
      • ls -l 命令的功能
    • tree命令实现

使用makefile或cmake管理工程。

最终实现效果: 

先把基本的管理工程文件写出来。

如果用Makefile管理工程,

OBJS := main.o cmd_ls.o cmd_cp.o cmd_handle.o # 所有依赖目标文件
TARGET := tinyshell  # 目标文件

$(TARGET): $(OBJS)  
     @gcc   $^ -o $@  # $^ : 依赖的所有文件  $@ : 目标文件
     @echo "Done."


%.o:%.c   # 自动推导
    @gcc -c $< -o $@  # $< :依赖的第一个文件  $@ : 目标文件


clean:  # 清除目标 
    rm -rf *.o $(TARGET)  # 删除相关依赖文件

 如果用cmake管理工程,CMakeList.txt

cmake_minimum_required(VERSION 3.25)
project(tiny_shell C)

set(CMAKE_C_STANDARD 11)

# 添加源文件
file(GLOB SOURCES "*.c")
# 添加头文件
file(GLOB HEADERS "*.h")

# 将源文件添加到可执行目标
add_executable(YourExecutable ${SOURCES} ${HEADERS})

猜你喜欢

转载自blog.csdn.net/qq_23172985/article/details/130694754