标签: bsd

sed就地标志,适用于Mac(BSD)和Linux

是否有一个sedtodo就地编辑的调用,没有可在Linux和Mac上运行的备份?虽然BSD sed随OS X似乎需要sed -i '' …,在GNU sedLinux的发行版通常都与解释的报价为空,输入文件名(而不是备份扩展),并且需要sed -i …替代.

是否有任何命令行语法适用于这两种风格,所以我可以在两个系统上使用相同的脚本?

linux macos bsd sed

218
推荐指数
10
解决办法
7万
查看次数

在Linux中查找-exec shell函数?

有没有办法find执行我在shell中定义的函数?例如:

dosomething () {
  echo "doing something with $1"
}
find . -exec dosomething {} \;
Run Code Online (Sandbox Code Playgroud)

结果是:

find: dosomething: No such file or directory
Run Code Online (Sandbox Code Playgroud)

有没有办法让find-execdosomething

linux bash shell bsd find

169
推荐指数
8
解决办法
7万
查看次数

如何在Mac OS X上确定静态库(.a)的目标体系结构?

我有兴趣验证是否为ARM或Intel构建了一个给定的iPhone静态库.

它比任何事物都更具好奇心.是否有某种Mac OS X或BSD特定工具来执行此操作?这篇文章在Linux中给出了一个例子.

iphone macos linker bsd universal-binary

123
推荐指数
5
解决办法
8万
查看次数

使用-i选项(就地编辑)的sed命令在Ubuntu上工作正常,但在Mac上工作正常

我对Sed一无所知但是需要这个命令(在Ubuntu上运行正常)才能在Mac OSX上运行:

sed -i "/ $domain .*#drupalpro/d" /etc/hosts
Run Code Online (Sandbox Code Playgroud)

我越来越:

sed: 1: "/etc/hosts": extra characters at the end of h command
Run Code Online (Sandbox Code Playgroud)

linux macos bsd sed inplace-editing

95
推荐指数
4
解决办法
6万
查看次数

POSIX异步I/O(AIO)的状态是什么?

网页上散布着各种描述POSIX AIO设施的页面,其中包含不同的细节.它们都不是最近的.目前还不清楚他们究竟在描述什么.例如,Linux内核异步I/O支持的"官方"(?)网站说套接字不起作用,但我的Ubuntu 8.04.1工作站上的"aio.h"手册页似乎都暗示它适用于任意文件描述符.然后还有另一个项目似乎在图书馆层工作,文档更少.

我想知道:

  • POSIX AIO的目的是什么?鉴于我能找到的最明显的实现示例说它不支持套接字,整个事情对我来说似乎很奇怪.它只适用于异步磁盘I/O吗?如果是这样,为什么超通用API?如果没有,为什么磁盘I/O首先受到攻击?
  • 哪些示例完整的 POSIX AIO程序我可以看一下?
  • 有没有人真正使用它,真的吗?
  • 哪些平台支持POSIX AIO?他们支持哪些部分?有没有人真的支持隐含的"对任何FD的任何I/O" <aio.h>似乎有希望?

我可以使用的其他多路复用机制非常好,但随处可见的信息碎片让我很好奇.

linux bsd posix asynchronous aio

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

英特尔汇编语法与AT&T相比的局限性

对我来说,英特尔语法更容易阅读.如果我只是通过汇编森林来专注于英特尔语法,我会错过什么吗?有什么理由我想转换到AT&T(除了能够阅读其他人的AT&T组装)?我的第一个线索是gdb默认使用AT&T.

如果这很重要,我的重点只是任何关系汇编和语法可能有Linux/BSD和C语言.

c linux assembly bsd

78
推荐指数
6
解决办法
3万
查看次数

如何为每个ping结果添加时间戳?

Ping默认返回此值:

64 bytes from 203.173.50.132: icmp_seq=0 ttl=244 time=57.746 ms
Run Code Online (Sandbox Code Playgroud)

有什么方法可以让它添加时间戳吗?

例如,

Mon 21 May 2012 15:15:37 EST | 64 bytes from 203.173.50.132: icmp_seq=0 ttl=244 time=57.746 ms
Run Code Online (Sandbox Code Playgroud)

我在OS X v10.7(Lion)上似乎有一些BSD版本的ping.

bash bsd ping osx-lion

61
推荐指数
9
解决办法
11万
查看次数

如何使用sys/queue.h中的列表?

目前,我已经实现了一个单链表,如下所示:

struct PeerNode {
     struct Peer* cargo;
     struct PeerNode* next;
};
Run Code Online (Sandbox Code Playgroud)

...我有一个包含几个链接列表的结构,如下所示:

struct Torrent {
     ...
     struct PeerNode* peer_list;
     struct PeerNode* unchoked_peers;
     ...
}
Run Code Online (Sandbox Code Playgroud)

我想通过使用提供的宏来替换它sys/queue.h.我知道我可以用这样的代码替换我的代码:

struct Torrent {
     ...
     LIST_ENTRY(PeerNode, Peer) peer_list;
     struct PeerNode* unchoked_peers;
     ...
}
Run Code Online (Sandbox Code Playgroud)

然后,通过查看man queue,我相信我会通过这样做来初始化列表:

LIST_INIT(&peer_list);
LIST_INIT(unchoked_peers);
Run Code Online (Sandbox Code Playgroud)

但是,我不明白如何LIST_ENTRY使用列表的因素.从man页面上,它说:"宏LIST_ENTRY声明了一个连接列表中元素的结构,"但我真的不明白这意味着什么.

为什么我要声明一个结构来连接列表中的元素?不应该通过指针将每个节点连接到下一个节点,就像我的初始链表实现一样?如何用我提供的实现替换我的链表sys/queue.h?如何在列表中插入元素?

c linux bsd list

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

使用一个sed命令进行多次替换

我想知道如何使用单个sed语句进行多重查找/替换Mac OSX.我能够做到这一点, Ubuntu但由于其BSD性质OSX,命令必须略有改变.

所以,给定一个包含字符串的文件:

"Red Blue Red Blue Black Blue Red Blue Red"
Run Code Online (Sandbox Code Playgroud)

我想运行一个导致输出的sed语句:

"Green Yellow Green Yellow Black Yellow Green Yellow Green"
Run Code Online (Sandbox Code Playgroud)

我的两个sed声明有资格 find

color1="Green"  
color2="Yellow"  
find . -type f -exec sed -i '' s/Red/$color1/g {} \;  
find . -type f -exec sed -i '' s/Blue/$color2/g {} \;  
Run Code Online (Sandbox Code Playgroud)

我已经尝试了几种分号和斜线的组合,并查看了Apple的开发人员页面上的sed,但由于缺少示例,我无法将它拼凑在一起.

macos shell bsd sed

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

获取进程的argc和argv的替代方法

我正在寻找替代方法来获取命令行参数argcargv提供给进程,而无需直接访问传入的变量main().

我想使一类是独立的main(),这样argcargv没有明确地传递给使用它们的代码.

编辑:有些澄清似乎是有序的.我有这门课.

class Application
{
  int const argc_;
  char const** const argv_;

public:
  explicit Application(int, char const*[]);
};

Application::Application(int const argc, char const* argv[]) :
  argc_(argc),
  argv_(argv)
{
}
Run Code Online (Sandbox Code Playgroud)

但我想一个默认的构造Application::Application(),有一些(最有可能)的C代码,拉动argcargv从某处.

c++ linux windows bsd posix

21
推荐指数
6
解决办法
8203
查看次数

标签 统计

bsd ×10

linux ×7

macos ×4

sed ×3

bash ×2

c ×2

posix ×2

shell ×2

aio ×1

assembly ×1

asynchronous ×1

c++ ×1

find ×1

inplace-editing ×1

iphone ×1

linker ×1

list ×1

osx-lion ×1

ping ×1

universal-binary ×1

windows ×1