Tag: unix

为什么malloc()和printf()表示为不可重入?

在UNIX系统中,我们知道malloc()是一个非重入函数(系统调用)。 这是为什么? 同样, printf()也被认为是不可重入的; 为什么? 我知道重入的定义,但我想知道为什么它适用于这些function。 什么阻止他们保证可重入?

什么是* nix命令来查看用户的默认loginshell

什么是* nix命令来查看用户的默认loginshell? 我可以使用chsh更改默认的loginshell,但我不知道如何获取用户的默认shell。 伪代码 $ get-shell /usr/bin/zsh

linux命令末尾的“&”是什么意思?

我是一名系统pipe理员,并被要求运行一个linux脚本来清理系统。 命令是这样的: perl script.pl > output.log & 所以这个命令是以“ &结尾的,有没有什么特别的意义呢? 我有壳的基本知识,但我从来没有见过这个。

如何有效地使用grep?

我有大量的小文件被search。 我一直在寻找一个好的事实上的multithreading版本的grep但找不到任何东西。 我怎样才能改善我对grep的使用? 截至目前我正在这样做: grep -R "string" >> Strings

为什么open()用错误的权限创build我的文件?

我正在尝试从文件中读取一些文本,并使用open() , read()和write()将其写入另一个文本。 这是我open()的文件写入(我想创build一个新的文件,并写入它): fOut = open ("test-1", O_RDWR | O_CREAT | O_SYNC); 这是设置文件权限的东西,我根本不明白。 这是ls -l的输出: ———T 1 chaitanya chaitanya 0 2010-02-11 09:38 test-1 即使读取权限被locking。 我试图寻找这个,但无法find任何东西。 奇怪的是, write()仍然成功地写入数据到文件。 另外,如果我执行“chmod 777 test-1”,事情就会重新开始。 有人可以让我知道我公开的电话中哪里出错吗? 谢谢! 为了您的参考,我已经粘贴了下面的完整程序: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> int main () { char buffer[512], ch; int fIn, fOut, i; ssize_t bytes; […]

为什么shell脚本比较经常使用x $ VAR = xyes?

我经常在使用自动工具(autoconf,automake)的项目的构build脚本中看到这一点。 当有人想检查一个shellvariables的值时,经常使用这个习惯用法: if test "x$SHELL_VAR" = "xyes"; then … 简单地检查像这样的值有什么好处: if test $SHELL_VAR = "yes"; then … 我认为我必须有一些原因,我经常看到这一点,但我无法弄清楚它是什么。

如何使一个shell脚本全球?

我在Mac的操作系统10.6,我想了解一些关于shell脚本的东西。 我知道如何保存一个shell脚本,并使其可执行,但我想知道我可以做什么或在哪里可以保存文件,使其全球(即,无论我在什么文件夹中可访问)。 例如,如果我将.sh文件保存在/ Users / username /目录中并使其可执行,那么我只能在该特定目录中执行该脚本。 如果我导航到/用户/用户名/下载,例如,我不能执行该脚本。 此外,任何有关了解shell脚本的资源build议都将有所帮助。 谢谢

如何在tar命令中包含.htaccess?

每当我这样做 tar -pczf file.tar.gz * 它会忽略任何.htaccess文件,并且我不能在该文件中看到如何包含它。

* nix select和exceptfds / errorfds语义

select系统调用需要3个文件描述符集,用于监视可读/可写的fds和filedescriptor上的“exception”。 我的select手册页没有提到exceptfd描述符集。 它是干什么用的; 什么样的exception可以和将通知文件描述符? 我假设这可以是不同的描述符types…无论是TCP套接字,pipe道,tty等)。 有没有人有更多的信息,哪些types的错误select可以报​​告不同types的描述符?

Unix grep正则expression式包含“x”但不包含“y”

我需要一个单通道的正则expression式,其中包含,比如alpha,但不包含beta。 grep 'alpha' <> | grep -v 'beta'