linux终端vim操作系统模拟问题

问题描述

linux终端vim操作系统模拟问题
 #include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>

int main( void )
{
        struct process{
                char pname[3];
                char *next;
                int act;
                int runt;
                char sta;
        };
        int a[5];
        int i,j=0,m,n,u=1,o;
        int current;
        struct process s[5];
        strcpy(s[1].pname,"Q1");
        strcpy(s[2].pname,"Q2");
        strcpy(s[3].pname,"Q3");
        strcpy(s[4].pname,"Q4");
        strcpy(s[5].pname,"Q5");
        s[1].runt = 0;
        s[2].runt = 0;
        s[3].runt = 0;
        s[4].runt = 0;
        s[5].runt = 0;
        s[1].sta='R';
        s[2].sta='R';
        s[3].sta='R';
        s[4].sta='R';
        s[5].sta='R';
        srand(time(NULL));
        for(i=1;i<6;i++)
        {
                s[i].act = rand()%8+1;
        }
                for(m=1;m<10;m++)
                        for(n=1;n<6;n++)
                        {
                                if(s[n].sta == 'E') continue;
                                printf("
Ronud%d:
",u);
                                u++;
                                current = n;
                                s[n].runt = s[n].runt + 1;
                                sleep(1);
                                if(s[n].runt == s[n].act)
                                {
                                        s[n].sta = 'E';
                                        a[j] = n;
                                        j++;
                                }
                                printf("RunningProcess:s%d	PlanTime:%d	RunTime:%d	state:%c",current,s[n].act,s[n].runt,s[n].sta);
                                printf("
The Order Of Running Process:
");
                                for(o=1;o<6;o++)
                                {
                                        if(s[o].sta == 'E') continue;
                                        else
                                        {
                                                printf("s%d	",o);
                                        }
                                }
                                printf("
The Order Of Block Process:
");
                                for(o=1;o<6;o++)
                                {
                                        if(s[o].sta == 'E') printf("s%d	",o);
                                        else continue;
                                }
                                printf("
*******************************************************************
");
                        }
        printf("The Order of The end Process:
");
        for(i=0;i<5;i++)
        {
                printf("The %d of th end Process is s%d
",i+1,a[i]);
        }
        return 0;
}

老师布置的一道操作系统作业题,要求在linux终端下使用c语言模拟操作系统调用进程,代码已经摸索出= =,但是运行结果不尽如人意,最后出现——段错误(核心已转储),不知道出现原理以及解决办法,求大神帮帮忙,谢谢啦!

解决方案

Linux终端下解决中文乱码问题

解决方案二:

用gdb调试一下core文件定位错误

解决方案三:

你定义的结构体中 char * 成员变量没分配内存。

时间: 2024-10-24 19:04:15

linux终端vim操作系统模拟问题的相关文章

帮助你提升效率的Linux终端快捷操作汇总

很多普通 Linux 桌面用户都对使用终端感到排斥和恐惧,其实它没大家想的那么复杂,很多常见操作都可以直接在终端中进行,如:安装软件.升级系统等. 无论你是新手还是 Linux 终端使用的老鸟,小编在此为大家总结了提升终端命令执行效率的快捷操作汇总,希望能帮助你学习和提升效率. 移动定位光标 在终端中移动光标和定位似乎非常不便,其实不是你想的那样,有很多种方式可以让键盘成为你的好朋友,只是需要掌握正确的方法而已. 定位单词 在长段的命令中,使用 Ctrl + ← 和 Ctrl + → 可快速将光

【Linux】Linux中Vim基础

word转成html再搞到csdn这块,效果不是很好,表格每行显示太高........囧 ---------------------------- VIM命令训练稿 目录 1.打开文件操作...1 2.存储及退出文件...2 3.模式转换...2 4.光标移动...3 5.插入...4 6.删除...4 7.复制和黏贴...5 8.查找...5 9.替换...6 10.编辑多个文件...6 11.其他命令...6 12分屏操作...7 13 vim的帮助指令...9 14.七个习惯   1.打开

谁需要GUI?快看Linux 终端生存之道

完全在 Linux 终端中生存并不容易,但这绝对是可行的. 处理常见功能的最佳 Linux shell 应用 你是否曾想像过完完全全在 Linux 终端里生存?没有图形桌面,没有现代的 GUI 软件,只有文本 -- 在 Linux shell 中,除了文本还是文本.这可能并不容易,但这是绝对可行的.我最近尝试完全在 Linux shell 中生存30天.下边提到的就是我最喜欢用的 shell 应用,可以用来处理大部分的常用电脑功能(网页浏览.文字处理等).这些显然有些不足,因为纯文本操作实在是有

在Linux终端中使用后台运行模式启动程序的方法

  我们有很多可以在Linux系统中打开一个终端窗口的方法,这取决于你的选择以及你的桌面环境. 如果是使用Ubuntu的话,你可以利用CTRL+ALT+T组合键打开终端.当然你也可以使用超级键(Windows键)打开Dash,搜索"TERM",然后点击"Term"图标来打开终端窗口. 对于其他的桌面环境来说,例如XFCE.KDE.LXDE.Cinnamon以及MATE,你可以在菜单中找到终端.有些环境会在停靠栏或者面板上面包含终端图标. 通常情况下,你可以在终端里面

11个炫酷的Linux终端命令大全

  今天给大家分享用了十年的Linux总结出来的11个炫酷的Linux终端命令大全,通过今天这篇文章我将向大家展示一系列的Linux命令.工具和技巧,我希望一开始就有人告诉我这些,而不是曾在我成长道路上绊住我. 1.命令行日常系快捷键 如下的快捷方式非常有用,能够极大的提升你的工作效率: CTRL + U -剪切光标前的内容 CTRL + K -剪切光标至行末的内容 CTRL + Y -粘贴 CTRL + E -移动光标到行末 CTRL + A -移动光标到行首 ALT + F -跳向下一个空格

whitespace-关于linux中vim插件的问题.

问题描述 关于linux中vim插件的问题. 本人使用了bronson/vim-trailing-whitespace和nicoraffo/conque两个插件. 一个是标记无效空格,一个是在vim中调出终端. 于是就出现调出终端后会在终端分屏中红色高亮无效空格. 请问如何不在终端中标记无效空格.并且标记无效空格的插件我还非常想用. 在whitespace中有g:extra_whitespace_ignored_filetypes选项. 此选项可以对相应的文件类型忽略.但是我不知道conque调

Linux终端下 dstat 监控工具

Linux终端下 dstat 监控工具 dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品.dstat克服了这些命令的局限并增加了一些另外的功能,增加了监控项,也变得更灵活了.dstat可以很方便监控系统运行状况并用于基准测试和排除故障. dstat可以让你实时地看到所有系统资源,例如,你能够通过统计IDE控制器当前状态来比较磁盘利用率,或者直接通过网络带宽数值来比较磁盘的吞吐率(在相同的时间间隔内). dstat将以列表的形式为你提供选项信息

11 个炫酷的 Linux 终端命令大全

今天给大家分享用了十年的Linux总结出来的11个炫酷的Linux终端命令大全,通过今天这篇文章我将向大家展示一系列的Linux命令.工具和技巧,我希望一开始就有人告诉我这些,而不是曾在我成长道路上绊住我. 1.命令行日常系快捷键 如下的快捷方式非常有用,能够极大的提升你的工作效率: CTRL + U -剪切光标前的内容 CTRL + K -剪切光标至行末的内容 CTRL + Y -粘贴 CTRL + E -移动光标到行末 CTRL + A -移动光标到行首 ALT + F -按单词前移(右向)

如何在Linux终端中修复U盘驱动器问题

U 盘想必在大家的日常生活和工作中都已经不可或缺了,它让我们的文件维护和转移更加方便容易.但随着频繁使用,有可能会出现文件系统错误.坏块.坏扇区而影响正常使用的情况.对于 Windows 用户来说,修复此类 U 盘问题有专用的图形化工具使用,而 Linux 用户就相对麻烦一点,本文我们就介绍如何在 Linux 终端中修复 U 盘问题. 当然,本文中介绍的方法不仅适用于 USB 驱动器,同时也适用于其它接口类型的硬盘.但在操作前请自行对重要数据进行备份,自己的数据自己负责. 使用fsck移除U盘中