标签: posix

为文件系统定义PATH_MAX?

我现在正在编写一个文件系统.的statvfs(甚至statfs)结构包含一个字段,用于指定在该路径名的最大长度.正如PATH_MAXpathconfmanpage(getconf)中定义的那样,这意味着它是基于每个目录定义的(因此,由底层文件系统确定).如何指定此值?

unix filesystems posix fuse

21
推荐指数
1
解决办法
2955
查看次数

是否在POSIX系统上始终提供wget或类似程序?

是否有类似的HTTP客户端wget/lynx/GET默认分发在POSIX或*nix操作系统中,可用于最大程度的可移植性?

我知道大多数系统都有wgetlynx安装,但我似乎记得使用默认设置安装一些Ubuntu的服务器系统,他们既没有wgetlynx安装在基本包.

我正在为Linux(可能还有Mac)编写一个shell脚本,将一个软件安装到计算机上.为了防止分发几个大文件,我想从互联网上获取这些文件,而不是使用安装程序打包.目前,安装脚本将分发在从Makeself创建的单个文件中.

我想避免安装脚本超过100 MB,如果包含文件将是如此,如果此人正在升级或重新安装软件,也可能不需要它们.也许最便携的事情是包括pacakage中的文件.

现在我只是在想具有用于脚本检查wget,lynx以及GET以该顺序,它会使用哪一个它可以下载,但我可以完全避免这个,如果有办法,我可以下载,将工作中的文件所有系统.

编辑:

有没有人对lwp-request(GET)及其可用性了解多少?这似乎在我迄今为止检查过的几个系统上都很容易获得,我记得这一直是大约10年多以前回到RedHat.

linux bash posix wget lynx

21
推荐指数
2
解决办法
3730
查看次数

在UNIX下删除C++中的文件

你们通常如何删除Linux操作系统上的文件?我正在考虑使用unlink函数调用,但我想知道你是否有更好的想法,因为C++标准没有提到文件删除操作,它是系统相关的.

c++ unix file-io posix

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

好的C库集合?

我正在为ANSI-C寻找一个很好的库集合,处理向量,哈希映射,二进制发束,字符串处理等等.

c unix linux bsd posix

20
推荐指数
1
解决办法
3245
查看次数

boost :: this_thread :: sleep()与nanosleep()?

我最近遇到了在一段精确时间内睡眠当前线程的需要.我知道在POSIX平台上这样做的两种方法:使用nanosleep()或使用boost::this_thread::sleep().

出于好奇心,我想知道这两种方法之间的差异是什么.精度有什么不同,有没有理由使用Boost方法?

nanosleep() 做法:

#include <time.h>
...
struct timespec sleepTime;
struct timespec returnTime;
sleepTime.tv_sec = 0;
sleepTime.tv_nsec = 1000;
nanosleep(&sleepTime, &returnTime);
Run Code Online (Sandbox Code Playgroud)

提升方法:

#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/thread/thread.hpp> 
...
boost::this_thread::sleep(boost::posix_time::nanoseconds(1000));
Run Code Online (Sandbox Code Playgroud)

c++ boost posix sleep

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

我怎么知道我的shell是什么类型的

我怎么知道我的shell是什么类型的?即,它是传统的sh,bash,ksh,csh,zsh等.

请注意,检查$SHELL$0不起作用,因为$SHELL并非由所有shell设置,因此如果您从一个shell开始,然后启动另一个shell,您可能仍然使用旧的shell $SHELL.

$0只告诉你shell二进制文件的位置,但不告诉你/bin/sh是真正的Bourne shell还是bash.

我认为答案将是"尝试一些功能,看看有什么打破",所以如果有人能指出我这样做的脚本,那就太好了.

unix shell posix

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

MAP_ANONYMOUS符合C99标准

我有一个使用mmap系统调用的应用程序,我有一个问题,让它编译几个小时,看看为什么我得到MAP_ANON和MAP_ANONYMOUS未声明,我有一个较小的代码部分,我用过,我看到我可以编译它就好了,所以我尝试了一个基本的编译,这工作,我看到它添加-std = c99失败.是否有特定原因导致MAP_ANON和MAP_ANONYMOUS在C99标准中无效?我知道它们不是由POSIX定义的,而是由BSD SOURCE定义的,所以我只想知道为什么会这样.

c posix mmap glibc

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

如何在Linux中获取C/C++中的用户名?

如何在不使用程序中的环境(getenv,...)的情况下获取实际的"用户名"?

c c++ linux posix username

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

awk的默认字段分隔符

抱歉这个愚蠢的问题,搜索但不自信是找到正确的答案,所以默认的分隔符只是awk的空间?

unix linux awk posix separator

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

带有私有匿名映射的ENOMEM的munmap()失败

我最近发现Linux不保证分配的内存mmap可以释放,munmap如果这导致VMA(虚拟内存区域)结构数超过的情况vm.max_map_count.Manpage(几乎)清楚地说明了这一点:

 ENOMEM The process's maximum number of mappings would have been exceeded.
 This error can also occur for munmap(), when unmapping a region
 in the middle of an existing mapping, since this results in two
 smaller mappings on either side of the region being unmapped.
Run Code Online (Sandbox Code Playgroud)

问题是Linux内核总是尝试合并VMA结构,munmap即使对于单独创建的映射也会失败.我能够编写一个小程序来确认这种行为:

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

#include <sys/mman.h>

// value of vm.max_map_count
#define VM_MAX_MAP_COUNT        (65530)

// number of vma for the empty process linked against libc …
Run Code Online (Sandbox Code Playgroud)

linux posix mmap memory-mapping enomem

20
推荐指数
1
解决办法
1319
查看次数

标签 统计

posix ×10

linux ×5

unix ×5

c ×3

c++ ×3

mmap ×2

awk ×1

bash ×1

boost ×1

bsd ×1

enomem ×1

file-io ×1

filesystems ×1

fuse ×1

glibc ×1

lynx ×1

memory-mapping ×1

separator ×1

shell ×1

sleep ×1

username ×1

wget ×1