MINIX 3 - 服务器打印信息

时间:2017-05-25 12:08:25

标签: c server minix

我正在尝试修改sched服务器,并试图将它打印出一些信息给stdout或stderr,但没有运气。我试过printf,fprintf,sprintf,puts,fputs。关于我应该怎么做的任何想法?我开始认为,无论出于何种原因,即使服务器中有printfs,也无法让服务器打印出来。

我尝试在schdule_process,start_scheduling和balance_queues中添加这些。

#include <stdio.h>

static void balance_queues(minix_timer_t *tp)
{
    struct schedproc *rmp;
    int proc_nr;

    printf("Test prinf\n");
    fprintf(stdout, "Test fprintf stdout\n");
    fprintf(stderr, "Test fprintf stderr\n");
    puts("Test puts\n");
    fputs("Test fputs stdout", stdout);
    fputs("Test fputs stderr", stderr);

    for (proc_nr=0, rmp=schedproc; proc_nr < NR_PROCS; proc_nr++, rmp++) {
        if (rmp->flags & IN_USE) {
            if (rmp->priority > rmp->max_priority) {
                rmp->priority -= 1; /* increase priority */
                schedule_process_local(rmp);
            }
        }
    }

    set_timer(&sched_timer, balance_timeout, balance_queues, 0);
}

这是我尝试过的balance_queues功能。我很确定这不是我的代码的问题,而是使用minix的东西,我还不明白。我花了最后2个小时阅读和搜索Tanenbaums和Woodhulls&#34; The Minix书 - 操作系统,设计和实现&#34;第三版但无法找到任何东西。根据我的理解,这个函数应该每隔5秒调用一次以平衡队列,但我没有打印到命令行!

0 个答案:

没有答案