草庐IT

Unix-ish

全部标签

c - AF_UNIX 套接字开销?

我看到一对AF_UNIX套接字由调用创建的一些奇怪的事情,例如:socketpair(AF_UNIX,SOCK_STREAM,0,sfd);其中sfd是文件描述符的int[2]数组。首先,默认缓冲区大小似乎恰好是122K(124928字节),而不是/proc/sys/net中的任何内容(例如设置为128K的wmem_default)。有谁知道这种奇怪的缓冲区大小的原因吗?其次,通过套接字(8字节)写入小消息时。我只能在写入block之前写入其中的423个,也就是8*423=3384字节,又是一个奇怪的大小。这些消息就像每条消息占用295多个字节一样。这种开销的来源是什么?在RHEL6(

linux - Unix 对单个文件的读取和写入是原子序列化的吗?

我想知道对单个文件的写入是否以原子方式完成,以便对同一文件的写入(“blabla”)和后续写入(“herpderp”)永远不会导致交错,例如“blaherpbladerp”。假设这些写入发生在不同的进程或线程中,什么决定先完成?此外,read()是否总是返回反射(reflect)文件处于所有先前写入完全完成状态的数据(无论数据是否已实际写入磁盘)?例如,在write("herpderp")之后,所有后续读取是否始终反射(reflect)写入文件的完整数据,或者后续读取有时仅反射(reflect)“herp”而不反射(reflect)“derp”(或者有时不反射(reflect)任何数据

linux - 从 Unix 上的文件句柄创建硬链接(hard link)?

如果我有一个打开文件的句柄,是否可以在从文件系统中删除对该文件的所有引用后创建该文件的硬链接(hardlink)?例如,像这样的:fd=fopen("/tmp/foo","w");unlink("/tmp/foo");fwrite(fd,"Hello,world!\n");create_link_from_fd(fd,"/tmp/hello");fclose(fd);具体来说,我想这样做,以便我可以安全地写入大型数据文件,然后以原子方式将它们移动到位,而不必担心如果我的程序在写入文件的过程中被杀死,我会自己清理. 最佳答案 新发布的

linux - 现代 Unix/Linux 系统上的密码是否仍限制为 8 个字符?

多年前,Unix密码被限制在8个字符以内,或者如果您将密码设置为超过8个字符,那么多出的密码不会有任何区别。大多数现代Unix/Linux系统仍然是这种情况吗?如果是这样,大约什么时候可以在大多数系统上使用更长的密码?是否有一种简单的方法可以判断给定系统是否支持更长的密码,如果支持,有效的最大值(如果有)是多少?我已经就此主题进行了一些网络搜索,但无法真正找到任何确定的信息;出现的大部分内容是从2000年代初期开始的,当时我认为8个字符的限制仍然很普遍(或者足够普遍以保证遵守该限制)。 最佳答案 尽管originalDES-base

linux - 从类 unix 系统获取唯一 ID

我想从任何类Unix系统(如果可能的话)获得一个唯一的ID,每次我的应用程序在同一台机器上运行时,该ID都会保持不变。如果可能的话,我想从Linux或FreeBSD或Solaris等获得相同的id...我不想为每台机器生成一个新的id,而是获得一个已经存在的id,我更喜欢这个id来自操作系统,我不喜欢使用MAC地址之类的东西。如果没有其他选项可用,我可以将MAC与其他内容结合使用,例如,id可以是MAC地址与其他内容组合的md5哈希值。我想听听您的建议。如果有用,我的应用程序是用C/C++编写的。所有这一切的目的是防止用户运行我的应用程序两次或更多次。我只想运行一次。

linux - Mac (UNIX) 系统上的 PATH 是什么?

我正在尝试设置一个项目,来自git的Storm:https://github.com/nathanmarz/storm/wiki/Setting-up-development-environmentDownloadaStormrelease,unpackit,andputtheunpackedbin/directoryonyourPATH我的问题是:PATH是什么意思?他们到底想让我做什么?有时我会看到一些/bin/path、$PATH或echoPATH。谁能解释一下PATH的概念,这样我以后就可以轻松设置所有内容,而不必盲目地按照说明进行操作? 最佳答案

mongodb - 聚合框架 - 将 Unix 时间戳转换为 ISODate

这个问题在这里已经有了答案:ConvertdatefrommillisecondstoISODateobject(5个回答)关闭6年前。假设我有一个包含此类对象的集合,其中ts属性包含一个Unix时间戳。{"_id":ObjectId("50ef1e0f1e816a74ad835a5a"),"ts":1357851660}有没有办法使用聚合框架将ts字段转换为ISODate,以便我可以使用日期运算符($dayOfYear、$dayOfMonth、...)? 最佳答案 我能找到的所有信息和测试都表明这在MongoDB2.2.2中是不可

mongodb - 聚合框架 - 将 Unix 时间戳转换为 ISODate

这个问题在这里已经有了答案:ConvertdatefrommillisecondstoISODateobject(5个回答)关闭6年前。假设我有一个包含此类对象的集合,其中ts属性包含一个Unix时间戳。{"_id":ObjectId("50ef1e0f1e816a74ad835a5a"),"ts":1357851660}有没有办法使用聚合框架将ts字段转换为ISODate,以便我可以使用日期运算符($dayOfYear、$dayOfMonth、...)? 最佳答案 我能找到的所有信息和测试都表明这在MongoDB2.2.2中是不可

php - Unix 权限,读取与执行(PHP 上下文)

我有一个需要连接到数据库的php脚本。数据库的凭据存储在另一个php脚本中。如果我将凭据文件的权限设置为661,以便Public具有执行权限但没有读取权限,这是否允许主脚本访问凭据并连接到数据库,同时防止有人在服务器上拥有用户帐户从查看凭据文件的内容?我想我对读取和执行之间的区别感到困惑。php脚本(以www或类似方式运行)是否需要读取权限才能包含另一个php脚本并使用其中的任何内容?还是只需要执行?读取权限是否隐式授予执行权限?子问题:如果我将我所有的脚本都设置为只有执行权限而没有读取权限,我应该预料到任何陷阱吗?这是假设我将保留任何我需要显式读取权限(数据文件)的文件设置为读取。

php - 如何根据时区在php中获取Unix时间戳

代码优先echotime().'';echodate('Y-m-dH:i:s').'';date_default_timezone_set('America/New_York');echotime().'';print_r($timezones[$timezone].'');echodate('Y-m-dH:i:s').'';在上面的代码中,日期是根据时区打印的,但即使设置了默认时区,unix时间戳也是相同的我们如何根据时区打印unix时间戳? 最佳答案 Volkerk提供的答案(即时间戳总是基于UTC)是正确的,但如果您确实需要解