0

我正在开发一个 C 项目,其目标是使用多个进程对文件进行排序。该文件被提供给第一个程序,即“根”进程,但随后根分叉和执行到“拆分”进程,然后分叉和执行到“排序”进程。基本上是用于排序的进程的二叉树。

我的问题是如何在文件系统中组织所有这些程序。我需要3个主要方法对吗?因为当您执行时,主要方法运行正确吗?如果是这样,所有 3 个程序不能在同一个文件夹中并一起编译,对吗?我必须有3个不同的make文件?

我需要这样的东西吗:主文件夹

根文件夹--拆分器文件夹--排序器文件夹

这是我拥有的第一个涉及多个进程的操作系统项目。先感谢您

4

2 回答 2

0

您仍然可以在同一个文件夹中拥有三个可执行文件,它们都使用相同的 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 $@ $<
于 2012-10-22T05:35:53.053 回答
0

您可以拥有一个可执行文件,在每次调用 fork() 之后,它可以判断它是父级还是子级,并执行相应的代码。

于 2012-10-21T23:30:31.430 回答