开发者

Execute a C program from another program in gcc

开发者 https://www.devze.com 2023-01-24 22:53 出处:网络
I need to include a .h file to my project which will be supplied at the runtime. Since .h files are linked at linking time i am unable to include .h file. So i decided to write a dummy program which w

I need to include a .h file to my project which will be supplied at the runtime. Since .h files are linked at linking time i am unable to include .h file. So i decided to write a dummy program which would create .h file and then i would call my actual program. Is there anyway to do this. Or any other solution is possible. I basically need to create a .h file before my program starts execution and need to link it up to my program. i actually should take a file which is created by user, parse the file and then create a structure with the fields present in that file.for example if the file contains the following data:- fno:int:4,fname:char:30,ftype:int:4 then i should create a structure like struct somename { int fno; char fname[30]; int ftype }; Then i should be able to create instances of the structure created. This is what i like to 开发者_运维百科do


dlopen is a solution. It allows to load dynamic library at runtime.

  • Compile your dummy program as a dynamic library.
  • Make use of dlopen on your .so
  • Call any function you need as if it has been linked by gcc (see dlsym).


What you can do is:

  • create .h file
  • fork
    • if in child: execve
    • if in father: wait (or not, depends on what you want to do)


I would use a Makefile; your program would receive the header file at runtime, (perhaps check it?) then execve() the make command passing the name of the file.

However, this sounds very cumbersome; perhaps you are trying to achieve something with the wrong tool. Maybe you want to use some scripting first? Or write two separate programs..? What are you trying to do?

0

精彩评论

暂无评论...
验证码 换一张
取 消