小编Gok*_*tug的帖子

内置 cd 和 cd 命令有什么区别?

我遇到了一个 Linux 命令,builtin cd.

命令builtin cd和之间有什么区别cd

事实上,我对差异做了一些研究,但我找不到对此的显着和重要的解释。

shell bash cd-command

18
推荐指数
2
解决办法
3190
查看次数

如果 Bourne shell 在发行版中不可用,在 hashbang 中使用 /bin/sh 是否正确?

通常,shell 脚本在脚本文件的第一行包含以下注释:#!/bin/sh. 根据我的研究,这被称为“哈希爆炸”,这是常规评论。此注释通知 Unix 该文件由目录下的 Bourne Shell 执行/bin

我的问题从那一点开始。直到现在我还没有看到这样的评论#!/bin/bash。它总是#!/bin/sh。但是,Ubuntu 发行版没有 Bourne Shell 程序。他们有 Bourne Again Shell (bash)。

在这一点上,将注释#!/bin/sh放在用 Ubuntu 发行版编写的 shell 脚本中是否正确?

shell bash ubuntu shell-script shebang

15
推荐指数
4
解决办法
4675
查看次数

扩展名为 bash 和 sh 的文件

我做了有关使用文件的一些研究bashsh扩展。大多数人和资源都说,如果一个文件有bash扩展名,那么它就包含bash脚本。同样,带有sh扩展名的文件包含sh脚本。

但是,我找不到 bash 和 sh 脚本之间的区别。有一些课程和文章旨在教人们在 shell 上编写脚本,它们都具有标题shell scripting

在这一点上,shell 脚本对应于哪一个?

Bash 脚本或 Sh 脚本。

我试图理解的是 bash 和 sh 脚本之间的区别。

shell bash shell-script

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

什么是地址绑定?

我找到了一些关于什么是“地址绑定”的解释。他们说“地址绑定是将虚拟或逻辑地址映射到物理地址的操作”。

这个定义正确吗?

我无法确定它是否正确,因为大学的演示文稿说将虚拟地址转换为物理地址是在执行时执行的。但是,地址绑定表示绑定操作可以在编译时、加载时或执行时实现。

这说明存在矛盾。

virtual-memory memory-management

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

父子进程使用的文件

#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>


int main( int argc, char *argv[] ){


    FILE *fptr;
    pid_t pid;

    fptr = fopen("Shared File.txt", "a");
    pid = fork();

    if( pid > 0 ){ // parent process

        int counter = 0;

        while( counter < 10 ){
            fprintf(fptr, "a");
            ++counter;
        }
        wait(NULL);
    }
    else{

        int counter = 0;

        while( counter < 5 ){
            fprintf(fptr, "b");
            ++counter;
        }
    }

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

当我执行此代码时,代码生成的文件包含此消息:bbbbbaaaaaaaaaa

每当我执行此代码时,都会收到相同的消息。为什么进程不以混洗顺序写入文件?

为什么操作系统首先尝试完成子进程?

我对消息的期望是这样的: baabbaaabaaabaa 进程之间没有连续的过渡。

process shared-file

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