我正在开发一个C项目,其目标是使用多个进程对文件进行排序。该文件被提供给第一个程序,即“root”进程,然后是root forks和exec到一个'splitter'进程,然后分叉并执行到'排序'进程。基本上是用于排序的二进制树。
我的问题是如何在文件系统中组织所有这些程序。我需要3个主要方法正确吗?因为当你执行main方法运行正确?如果是这样所有3个程序都不能在同一个文件夹中并且一起编译好吗?我将不得不有3个不同的制作文件?
我需要这样的东西: 主文件夹
根文件夹 - 拆分器文件夹 - 分拣机文件夹
这是我第一个涉及多个流程的os项目。 提前谢谢你
答案 0 :(得分:0)
您可以拥有一个可执行文件,在每次调用fork()之后,可以判断它是父项还是子项,并执行相应的代码。
答案 1 :(得分:0)
您仍然可以在同一个文件夹中拥有三个可执行文件,所有这些文件都使用相同的makefile进行编译。只是用不同的名字命名。
示例Makefile:
CC = gcc
CFLAGS = -Wall
LDFLAGS =
TARGET1 = program1
TARGET2 = program2
TARGET3 = program3
ALL_TARGETS = $(TARGET1) $(TARGET2) $(TARGET3)
all: $(ALL_TARGETS)
$(TARGET1): program1.o
$(CC) $(LDFLAGS) -o $@ $<
$(TARGET2): program2.o
$(CC) $(LDFLAGS) -o $@ $<
$(TARGET3): program3.o
$(CC) $(LDFLAGS) -o $@ $<
.c.o:
$(CC) $(CFLAGS) -c -o $@ $<