标签: systems-programming

NACHOS(JAVA verrsion)教程[设置和简单示例]

我需要在Linux中设置NACHOS java版本并运行一些简单的示例.如何设置和运行简单的样本?[需要一些教程和一些计算机分配与NACHOS的解决方案]

java operating-system systems-programming nachos

2
推荐指数
1
解决办法
4894
查看次数

使用ReadDirectoryChangesW API监视目录

我正在尝试e:\test使用ReadDirectoryChangesW API 监视目录.

我的代码:

#define UNICODE
#define WIN32_WINNT 0x0500
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>


HANDLE hDir;


int _tmain(int argc, _TCHAR* argv[])
{
    FILE_NOTIFY_INFORMATION fniDir;
    DWORD i = 0;

    hDir = CreateFile(_T("e:\\test"), GENERIC_READ , FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);

    ReadDirectoryChangesW(hDir, &fniDir, sizeof(fniDir), TRUE, FILE_NOTIFY_CHANGE_FILE_NAME, &i, NULL, NULL);
    while(TRUE)
    {


    if(i>0)
        wprintf(L"%s", fniDir.FileName);
    }

    CloseHandle(hDir);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我不知道我的代码有什么问题,因为我还没有完全理解ReadDirectoryChangesW文档,特别是LPOVERLAPPED 参数.

当我运行代码时,我没有得到任何输出,除了一个空白的控制台窗口.有人能指出我正确的方向吗?

谢谢.

c winapi filenames readdirectorychangesw systems-programming

2
推荐指数
1
解决办法
2911
查看次数

在System.IO.runCommand中使用stdout和stdin

我试图将runProcess中的stdin和stdout捕获到一个字符串中进行分析.

但是,设置句柄似乎相当困难.我徘徊在GHC.IO.Handle,这似乎是合乎逻辑的目的地,但似乎这应该是非常简单的.

haskell systems-programming

2
推荐指数
1
解决办法
450
查看次数

在c中初始化数组的格式为`int a [3] = {0,};`

我看过一个数组初始化的源代码是int arr[3] ={0,};什么意思?我通常使用这种格式int arr[3]={0};我可以知道有什么区别

c linux systems-programming

2
推荐指数
1
解决办法
91
查看次数

SysInternal的WinObj设备列表机制

SysInternals的WinObj可以列出所有设备对象.

我想知道它如何列出设备.

我们可以阅读任何开源吗?(或代码片段)

我应该知道的最重要的功能是什么?

windows operating-system device-driver systems-programming

1
推荐指数
1
解决办法
3090
查看次数

sigaction系统调用:如果sa_mask包含其中一个阻塞信号怎么办?

指定在处理程序调用期间被阻止的信号的sa_mask字段struct sigaction.这些信号在调用处理程序之前添加到进程块掩码中,并在处理程序完成后立即删除.如果sa_mask和过程信号掩码重叠怎么办?那些被sa_mask过程信号掩模掩盖的信号是否会从过程信号掩模中消除?

c linux signals systems-programming

1
推荐指数
1
解决办法
1258
查看次数

mac'purge'命令真的有用吗?

我使用mac机器,我对mac的purge命令的概念有好奇心.

当我执行该命令时,它释放了一些像垃圾一样的记忆(它真的对吗?)

我在本学期学习了"系统编程"中的虚拟内存概念,但我不知道这种清除是如何实现的.

所以我的问题是

  1. 如何清除可以区分仍然使用分配的内存块和垃圾?

  2. C中是否有任何小工具或相同的功能?

c macos purge systems-programming

1
推荐指数
1
解决办法
3144
查看次数

如何知道进程是父进程还是子进程

如何识别进程是否是使用其进程的另一进程的子/孙pid

c unix linux pid systems-programming

1
推荐指数
1
解决办法
7254
查看次数

MOV BL,[AX]错误

可能重复:
NASM 16位Intel

我正在为微处理器课程中的简单微处理器编写汇编代码.我正在编写一个程序:对从地址300开始存储在内存中的六个元素求和,但忽略那些80或以上(>=80h)或20十六进制或以下(<=20h)的那些元素.在6次比较后,程序应该停止甚至是否添加数字.

这是我的代码:

    E 300 30 40 50 60 70 75
    A 100
100:MOV AX,2FF
103:ADD AX,1
106:CMP AX,306
109:JAE 11C
10B:MOV BL,[AX]
10E:CMP BL,20
111:JBE 103
113:CMP BL,80
116:JAE 103
118:ADD CL,BL
11A:JMP 103
11C:INT3
Run Code Online (Sandbox Code Playgroud)

但我在这一行收到错误:

10B:MOV BL,[AX]
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么?

assembly microprocessors systems-programming x86-16

0
推荐指数
1
解决办法
3684
查看次数

C和C++标准是否意味着地址空间中的特殊值必须仅存在才能表示空指针的值?

在关于C和C++中的空指针的这个问题的讨论之后,我想在这里分开结束问题.

如果可以从C和C++标准推断(答案可以针对两个标准),取消引用其值等于nullptr(或(void *)0)值的指针变量是未定义的行为,是否意味着这些语言需要地址中的特殊值空间已经死了,这意味着它除了代表的作用外无法使用nullptr?如果系统在相同的地址处具有真正有用的功能或数据结构,该nullptr怎么办?这应该永远不会发生,因为编译器编写的每个系统都需要找出一个非冲突的空指针值,这是编译器的编写者责任吗?或者,在"未定义的行为模式"下编程以实现其意图时,需要访问此类函数或数据结构的程序员是否满足?

这看起来模糊了编译器和计算机系统角色的界限.我会问这样做是否正确,但我想这里没有空间.

这篇博文详细介绍了解决问题的情况

c c++ systems-programming language-lawyer

0
推荐指数
1
解决办法
798
查看次数

系统编程:等待(&status)的返回值

在学习分叉和管道时,我遇到了以下优秀教程:https://www.cs.rutgers.edu/~pxk/416/notes/c-tutorials/pipe.html

但是,本教程将讨论如何在最后一个父级生成的2个子进程之间建立管道.虽然它做得很好,但是某段代码让我困惑了一段时间:

while ((pid = wait(&status)) != -1) /* pick up all the dead children*/
    fprintf(stderr, "process %d exits with %d\n", pid, WEXITSTATUS(status));
exit(0);
Run Code Online (Sandbox Code Playgroud)

我真的很困惑wait(&status)(是的,我已经阅读了http://linux.die.net/man/2/wait上的手册页).我们只是声明一个int status,从来没有给它一个值,只是把它传递给等待.此状态是否在wait()功能中透明设置?

手册页说:

wait():成功时,返回已终止子进程的进程ID; 出错时,返回-1.

所以在上面的代码行中,while循环在wait(&status)返回-1 时退出.这很不耐烦:有错误,为什么?我们如何确保父母一直在旋转,直到所有孩子都正常终止?无论如何,'状态'是什么,它是如何设定的?

编辑:要添加,该程序确实编译和运行完美.

c linux waitpid systems-programming

0
推荐指数
1
解决办法
603
查看次数

在哪里可以找到__sync_add_and_fetch的标头

谁能告诉我在哪里可以找到没有标题的__sync_add_and_fetch内置函数的
标题,我们如何能够编译代码。

c c++ unix systems-programming

0
推荐指数
1
解决办法
664
查看次数

与其他系统编程语言(例如C)中通常使用的功能相比,Rust样式的方法调用方法是否有开销?

在其所有权范例的印象下,我才开始使用Rust。阅读该教程,我发现以下代码

let secret_number = rand::thread_rng().gen_range(1, 101);
Run Code Online (Sandbox Code Playgroud)

我假设rand::ThreadRng通过调用结构的方法实例化结构后会生成一个随机整数。

仅使用C语言中的函数来提高性能是否更好?由于Rust将自己定位为系统编程语言,并且如果我猜对了,那么选择创建结构并使用其方法的选择似乎不是最佳选择。

performance systems-programming rust

0
推荐指数
1
解决办法
105
查看次数