相关疑难解决方法(0)

进程和线程有什么区别?

进程和线程之间的技术差异是什么?

我感觉像'过程'这样的词被过度使用,还有硬件和软件线程.如Erlang这样的语言轻量级进程怎么样?是否有明确的理由使用一个术语而不是另一个术语?

multithreading process

1513
推荐指数
27
解决办法
111万
查看次数

什么是文件描述符,用简单的术语解释?

  1. 与维基百科相比,文件描述符的简化描述是什么?他们为什么需要?比如说,以shell进程为例,它是如何应用的?

  2. 进程表是否包含多个文件描述符.如果是,为什么?

unix operating-system file-descriptor

351
推荐指数
12
解决办法
19万
查看次数

fork()的目的是什么?

在Linux的许多程序和手册页中,我看过代码使用fork().我们为什么需要使用fork()它的目的是什么?

c unix posix fork

80
推荐指数
7
解决办法
5万
查看次数

Unix管道进入ls

我以为我理解*nix管道直到现在......我有一个可执行文件studio,其中的符号链接到我的安装,Android Studio我假设我可以获得链接到的位置

which studio | ls -l
Run Code Online (Sandbox Code Playgroud)

但这不起作用.它给我的东西等同于刚刚ls -l在当前目录中运行.

如果我跑which studio,我得到/home/me/bin/studio.如果我运行,ls -l /home/me/bin/studio我得到预期的输出显示符号链接位置.

那么为什么管道版本不起作用呢?什么没有我对管道的了解?

unix linux ls pipe

34
推荐指数
2
解决办法
2万
查看次数

exec和execve等系统调用的exec系列的功能有什么区别?

我最近一直在关注系统编程课程,我通过系统调用exec()execve()来完成.到目前为止,我发现这两者之间没有任何区别,即使维基百科也没有给出明确的解释,所以exec()execve()之间有区别.

有人可以给出关于exec系列调用的简短描述,例如execl(), execv(), execle(), execvp().

c linux exec system-calls

28
推荐指数
3
解决办法
2万
查看次数

为什么ps o/p在管道之后列出grep进程?

当我做

$ ps -ef | grep cron
Run Code Online (Sandbox Code Playgroud)

我明白了

root      1036     1  0 Jul28 ?        00:00:00 cron
abc    21025 14334  0 19:15 pts/2    00:00:00 grep --color=auto cron
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么我会看到第二行.根据我的理解,ps列出进程并将列表管道grep.grepps列出流程时甚至没有开始运行,那么如何grep在o/p中列出流程?

相关第二个问题:

当我做

$ ps -ef | grep [c]ron
Run Code Online (Sandbox Code Playgroud)

我只得到

root      1036     1  0 Jul28 ?        00:00:00 cron
Run Code Online (Sandbox Code Playgroud)

第一次和第二次grep执行有什么区别?

linux bash pipe ps

17
推荐指数
3
解决办法
6585
查看次数

为什么git忽略我更改的文件?

我对我的git工作目录中的文件进行了任意更改.

git status 无法识别文件已更改.

git add /path/to/file 没有效果.

git add -f /path/to/file 没有效果.

git status /path/to/file 将文件显示为"要提交的更改"存储区中的文件.

我删除了我的.gitignore文件,只是为了确定.上述任何行为均无变化.

我做了git reset --hard,重新做了我的改变.上述任何行为均无变化.

这可能会发生什么?

git gitignore

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

什么是| (竖线字符)在shell(bash)命令中执行?

我必须运行此命令来安装NPM。它有什么作用?什么是| 在最后?

curl https://raw.githubusercontent.com/creationix/nvm/v0.23.2/install.sh | bash
Run Code Online (Sandbox Code Playgroud)

另外,我是否在Bash中运行类似UNIX的命令?为什么这样做?Bash是终端的UNIX命令兼容接口吗?

bash

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

为什么我们需要 wait() 系统调用?

您好,我是学习系统调用的新手。我目前正在学习 fork() 和 wait() 系统调用。我知道 fork() 创建一个新的子进程。让我困惑的是 wait() 调用。
到目前为止,我的理解是:
(1)当一个进程死亡时,它会进入“僵尸状态”,即它不会释放其PID,而是等待其父进程确认子进程已死亡,然后释放PID
(2) 所以我们需要一种方法来确定子进程何时结束,以便我们不会让任何进程处于僵尸状态

我对以下事情感到困惑:
(1) 当运行一个 C 程序时,我派生了一个新的子进程,如果我不显式调用wait(),当子进程结束时它是在内部完成的吗?因为您仍然可以用 C 语言编写一段代码,在其中运行 fork() 而无需 wait(),并且它似乎工作正常?
(2) wait() 的作用是什么?我知道它返回已终止的子进程的 PID,但这对于释放已终止进程的 PID 有什么帮助/相关呢?

我很抱歉提出这样幼稚的问题,但这是我真的很好奇的事情,而且我在网上找不到任何好的资源!非常感谢您的帮助!

linux operating-system process waitpid

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

如何排序和计算linux中行的出现次数

我如何计算linux中列表的出现结果?

a
b
b
c
c
d

Result: a = 1 , b = 2 , c=2 , d=1
Run Code Online (Sandbox Code Playgroud)

linux bash terminal

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