我有一个C ++程序,一个Linux驱动程序和一个Bash脚本。 C ++程序将通过驱动程序与FPGA通信。为了对FPGA进行编程,我需要卸载驱动程序,然后编程FPGA并重新加载驱动程序。这些是Bash脚本中的任务。
基本上我想要实现的是当C ++程序从客户端程序接收到特定命令时,它将启动Bash脚本以终止C ++程序,卸载驱动程序,编程FPGA,加载驱动程序并重新启动C ++程序。但是,当我使用system
,fork
和execl
在C ++程序中启动脚本时,rmmod不成功,错误消息“资源暂时不可用”。看起来驱动程序认为C ++程序仍在使用它。
但我想当我使用fork
和execl
时,如果我从其他进程中杀死C ++程序将释放驱动程序,不是吗?如何杀死程序并卸载驱动程序?