本文整理汇总了C++中rlimit函数的典型用法代码示例。如果您正苦于以下问题:C++ rlimit函数的具体用法?C++ rlimit怎么用?C++ rlimit使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了rlimit函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: test
int test(char *URL)
{
CURLcode res;
CURL *curl;
if(!strcmp(URL, "check")) {
/* used by the test script to ask if we can run this test or not */
if(rlimit(FALSE)) {
fprintf(stdout, "rlimit problem: %s\n", msgbuff);
return 1;
}
return 0; /* sure, run this! */
}
if(rlimit(TRUE)) {
/* failure */
return TEST_ERR_MAJOR_BAD;
}
/* run the test with the bunch of open file descriptors
and close them all once the test is over */
if(curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) {
fprintf(stderr, "curl_global_init() failed\n");
close_file_descriptors();
return TEST_ERR_MAJOR_BAD;
}
curl = curl_easy_init();
if(!curl) {
fprintf(stderr, "curl_easy_init() failed\n");
close_file_descriptors();
curl_global_cleanup();
return TEST_ERR_MAJOR_BAD;
}
test_setopt(curl, CURLOPT_URL, URL);
test_setopt(curl, CURLOPT_HEADER, 1L);
res = curl_easy_perform(curl);
test_cleanup:
close_file_descriptors();
curl_easy_cleanup(curl);
curl_global_cleanup();
return (int)res;
}
开发者ID:Lekensteyn,项目名称:curl,代码行数:49,代码来源:lib518.c
示例2: inode_newsize_ok
/**
* inode_newsize_ok - may this inode be truncated to a given size
* @inode: the inode to be truncated
* @offset: the new size to assign to the inode
* @Returns: 0 on success, -ve errno on failure
*
* inode_newsize_ok must be called with i_mutex held.
*
* inode_newsize_ok will check filesystem limits and ulimits to check that the
* new inode size is within limits. inode_newsize_ok will also send SIGXFSZ
* when necessary. Caller must not proceed with inode size change if failure is
* returned. @inode must be a file (not directory), with appropriate
* permissions to allow truncate (inode_newsize_ok does NOT check these
* conditions).
*/
int inode_newsize_ok(const struct inode *inode, loff_t offset)
{
if (inode->i_size < offset) {
unsigned long limit;
limit = rlimit(RLIMIT_FSIZE);
if (limit != RLIM_INFINITY && offset > limit)
goto out_sig;
if (offset > inode->i_sb->s_maxbytes)
goto out_big;
} else {
/*
* truncation of in-use swapfiles is disallowed - it would
* cause subsequent swapout to scribble on the now-freed
* blocks.
*/
if (IS_SWAPFILE(inode))
return -ETXTBSY;
}
return 0;
out_sig:
send_sig(SIGXFSZ, current, 0);
out_big:
return -EFBIG;
}
开发者ID:AllenDou,项目名称:linux,代码行数:41,代码来源:attr.c
示例3: inode_newsize_ok
int inode_newsize_ok(const struct inode *inode, loff_t offset)
{
if (inode->i_size < offset) {
unsigned long limit;
limit = rlimit(RLIMIT_FSIZE);
if (limit != RLIM_INFINITY && offset > limit)
goto out_sig;
if (offset > inode->i_sb->s_maxbytes)
goto out_big;
} else {
/*
*/
if (IS_SWAPFILE(inode))
return -ETXTBSY;
}
return 0;
out_sig:
send_sig(SIGXFSZ, current, 0);
out_big:
return -EFBIG;
}
开发者ID:romanbb,项目名称:android_kernel_lge_d851,代码行数:26,代码来源:attr.c
示例4: arch_pick_mmap_layout
void arch_pick_mmap_layout(struct mm_struct *mm)
{
unsigned long random_factor = mmap_rnd();
unsigned long gap;
/*
* Fall back to the standard layout if the personality
* bit is set, or if the expected stack growth is unlimited:
*/
gap = rlimit(RLIMIT_STACK);
if (!test_thread_flag(TIF_32BIT) ||
(current->personality & ADDR_COMPAT_LAYOUT) ||
gap == RLIM_INFINITY ||
sysctl_legacy_va_layout) {
mm->mmap_base = TASK_UNMAPPED_BASE + random_factor;
mm->get_unmapped_area = arch_get_unmapped_area;
mm->unmap_area = arch_unmap_area;
} else {
/* We know it's 32-bit */
unsigned long task_size = STACK_TOP32;
if (gap < 128 * 1024 * 1024)
gap = 128 * 1024 * 1024;
if (gap > (task_size / 6 * 5))
gap = (task_size / 6 * 5);
mm->mmap_base = PAGE_ALIGN(task_size - gap - random_factor);
mm->get_unmapped_area = arch_get_unmapped_area_topdown;
mm->unmap_area = arch_unmap_area_topdown;
}
}
开发者ID:13621022,项目名称:mt6572_kernel,代码行数:31,代码来源:sys_sparc_64.c
示例5: mmap_is_legacy
static inline int mmap_is_legacy(void)
{
if (current->personality & ADDR_COMPAT_LAYOUT)
return 1;
if (rlimit(RLIMIT_STACK) == RLIM_INFINITY)
return 1;
return sysctl_legacy_va_layout;
}
开发者ID:03199618,项目名称:linux,代码行数:8,代码来源:mmap.c
示例6: memobj_init
void
memobj_init(void)
{
unsigned long min_bytes, max_bytes;
unsigned long mem_bytes = GetPhysicalPages() * 0.90 * TILT_PAGESIZE;
unsigned long cache_bytes = GetBcacheSize() * 2;
min_bytes = 2048 * 1024;
min_bytes = Max(min_bytes, cache_bytes);
max_bytes = (unsigned long)INT_MAX;
max_bytes = Min(max_bytes, mem_bytes);
max_bytes = Min(max_bytes, rlimit(RLIMIT_DATA));
max_bytes = Min(max_bytes, rlimit(RLIMIT_AS));
#ifdef RLIMIT_VMEM
max_bytes = Min(max_bytes, rlimit(RLIMIT_VMEM));
#endif
init_int(&MinHeapByte, min_bytes);
init_int(&MaxHeapByte, 0.40 * max_bytes);
assert(MinHeapByte <= MaxHeapByte);
#ifdef sparc
assert(TILT_PAGESIZE == sysconf(_SC_PAGESIZE));
#else
assert(TILT_PAGESIZE == sysconf(_SC_PAGE_SIZE));
#endif
StackInitialize();
HeapInitialize();
GuardStackletSize = TILT_PAGESIZE / kilobyte;
stackletOffset = (GuardStackletSize + MLStackletSize + CStackletSize) *
kilobyte;
primaryStackletOffset = 0;
replicaStackletOffset = stackletOffset;
/* So we don't pay mmap for first thread - general case? XXXX */
{
int i;
Stacklet_t *temp[5];
for (i=0; i<5; i++)
temp[i] = Stacklet_Alloc(NULL);
for (i=0; i<5; i++)
Stacklet_Dealloc(temp[i]);
}
}
开发者ID:RobertHarper,项目名称:TILT-Compiler,代码行数:44,代码来源:memobj.c
示例7: mmap_base
static inline unsigned long mmap_base(void)
{
unsigned long gap = rlimit(RLIMIT_STACK);
if (gap < MIN_GAP)
gap = MIN_GAP;
else if (gap > MAX_GAP)
gap = MAX_GAP;
return PAGE_ALIGN(TASK_SIZE - gap - mmap_rnd());
}
开发者ID:08opt,项目名称:linux,代码行数:11,代码来源:mmap_64.c
示例8: mmap_base
static unsigned long mmap_base(unsigned long rnd)
{
unsigned long gap = rlimit(RLIMIT_STACK);
if (gap < MIN_GAP)
gap = MIN_GAP;
else if (gap > MAX_GAP)
gap = MAX_GAP;
return PAGE_ALIGN(TASK_SIZE - gap - rnd);
}
开发者ID:Blackburn29,项目名称:PsycoKernel,代码行数:11,代码来源:mmap.c
示例9: mmap_base
static inline unsigned long mmap_base(void)
{
unsigned long gap = rlimit(RLIMIT_STACK);
if (gap < MIN_GAP)
gap = MIN_GAP;
else if (gap > MAX_GAP)
gap = MAX_GAP;
gap &= PAGE_MASK;
return STACK_TOP - stack_maxrandom_size() - mmap_rnd() - gap;
}
开发者ID:03199618,项目名称:linux,代码行数:11,代码来源:mmap.c
示例10: mmap_base
static inline unsigned long mmap_base(void)
{
unsigned long gap = rlimit(RLIMIT_STACK);
if (gap < MIN_GAP)
gap = MIN_GAP;
else if (gap > MAX_GAP)
gap = MAX_GAP;
return STACK_TOP - (gap & PAGE_MASK);
}
开发者ID:asdlei00,项目名称:Ace-i,代码行数:11,代码来源:mmap.c
示例11: mmap_is_legacy
static inline int mmap_is_legacy(void)
{
#ifdef CONFIG_64BIT
/*
* Force standard allocation for 64 bit programs.
*/
if (!is_compat_task())
return 1;
#endif
return sysctl_legacy_va_layout ||
(current->personality & ADDR_COMPAT_LAYOUT) ||
rlimit(RLIMIT_STACK) == RLIM_INFINITY;
}
开发者ID:asdlei00,项目名称:Ace-i,代码行数:13,代码来源:mmap.c
示例12: SYSCALL_DEFINE1
SYSCALL_DEFINE1(brk, unsigned long, brk)
{
unsigned long rlim, retval;
unsigned long newbrk, oldbrk;
struct mm_struct *mm = current->mm;
unsigned long min_brk;
down_write(&mm->mmap_sem);
#ifdef CONFIG_COMPAT_BRK
if (current->brk_randomized)
min_brk = mm->start_brk;
else
min_brk = mm->end_data;
#else
min_brk = mm->start_brk;
#endif
if (brk < min_brk)
goto out;
rlim = rlimit(RLIMIT_DATA);
if (rlim < RLIM_INFINITY && (brk - mm->start_brk) +
(mm->end_data - mm->start_data) > rlim)
goto out;
newbrk = PAGE_ALIGN(brk);
oldbrk = PAGE_ALIGN(mm->brk);
if (oldbrk == newbrk)
goto set_brk;
if (brk <= mm->brk) {
if (!do_munmap(mm, newbrk, oldbrk-newbrk))
goto set_brk;
goto out;
}
if (find_vma_intersection(mm, oldbrk, newbrk+PAGE_SIZE))
goto out;
if (do_brk(oldbrk, newbrk-oldbrk) != oldbrk)
goto out;
set_brk:
mm->brk = brk;
out:
retval = mm->brk;
up_write(&mm->mmap_sem);
return retval;
}
开发者ID:mjduddin,项目名称:B14CKB1RD_kernel_m8,代码行数:51,代码来源:mmap.c
示例13: mmap_base
static inline unsigned long mmap_base(struct mm_struct *mm)
{
unsigned long gap = rlimit(RLIMIT_STACK);
unsigned long random_factor = 0;
if (current->flags & PF_RANDOMIZE)
random_factor = get_random_int() % (1024*1024);
if (gap < MIN_GAP)
gap = MIN_GAP;
else if (gap > MAX_GAP)
gap = MAX_GAP;
return PAGE_ALIGN(TASK_SIZE - gap - random_factor);
}
开发者ID:AshishNamdev,项目名称:linux,代码行数:15,代码来源:mmap.c
示例14: spufs_dump_write
/*
* These are the only things you should do on a core-file: use only these
* functions to write out all the necessary info.
*/
static int spufs_dump_write(struct file *file, const void *addr, int nr, loff_t *foffset)
{
unsigned long limit = rlimit(RLIMIT_CORE);
ssize_t written;
if (*foffset + nr > limit)
return -EIO;
written = file->f_op->write(file, addr, nr, &file->f_pos);
*foffset += written;
if (written != nr)
return -EIO;
return 0;
}
开发者ID:AdrianHuang,项目名称:linux-3.8.13,代码行数:20,代码来源:coredump.c
示例15: siw_pd_ofa2siw
/*
* siw_reg_user_mr()
*
* Register Memory Region.
*
* @ofa_pd: OFA PD contained in siw PD.
* @start: starting address of MR (virtual address)
* @len: len of MR
* @rnic_va: not used by siw
* @rights: MR access rights
* @udata: user buffer to communicate STag and Key.
*/
struct ib_mr *siw_reg_user_mr(struct ib_pd *ofa_pd, u64 start, u64 len,
u64 rnic_va, int rights, struct ib_udata *udata)
{
struct siw_mr *mr = NULL;
struct siw_pd *pd = siw_pd_ofa2siw(ofa_pd);
struct siw_umem *umem = NULL;
struct siw_ureq_reg_mr ureq;
struct siw_uresp_reg_mr uresp;
struct siw_dev *sdev = pd->hdr.sdev;
unsigned long mem_limit = rlimit(RLIMIT_MEMLOCK);
int rv;
dprint(DBG_MM|DBG_OBJ, " start: 0x%016llx, "
"va: 0x%016llx, len: %llu, ctx: %p\n",
(unsigned long long)start,
(unsigned long long)rnic_va,
(unsigned long long)len,
ofa_pd->uobject->context);
if (atomic_inc_return(&sdev->num_mem) > SIW_MAX_MR) {
dprint(DBG_ON, ": Out of MRs: %d\n",
atomic_read(&sdev->num_mem));
rv = -ENOMEM;
goto err_out;
}
if (!len) {
rv = -EINVAL;
goto err_out;
}
if (mem_limit != RLIM_INFINITY) {
unsigned long num_pages =
(PAGE_ALIGN(len + (start & ~PAGE_MASK))) >> PAGE_SHIFT;
mem_limit >>= PAGE_SHIFT;
if (num_pages > mem_limit - current->mm->locked_vm) {
dprint(DBG_ON|DBG_MM,
": pages req: %lu, limit: %lu, locked: %lu\n",
num_pages, mem_limit, current->mm->locked_vm);
rv = -ENOMEM;
goto err_out;
}
}
开发者ID:asaf-levy,项目名称:softiwarp,代码行数:54,代码来源:siw_verbs.c
示例16: arch_pick_mmap_layout
/*
* This function, called very early during the creation of a new
* process VM image, sets up which VM layout function to use:
*/
void arch_pick_mmap_layout(struct mm_struct *mm)
{
#if !defined(__tilegx__)
int is_32bit = 1;
#elif defined(CONFIG_COMPAT)
int is_32bit = is_compat_task();
#else
int is_32bit = 0;
#endif
unsigned long random_factor = 0UL;
/*
* 8 bits of randomness in 32bit mmaps, 24 address space bits
* 12 bits of randomness in 64bit mmaps, 28 address space bits
*/
if (current->flags & PF_RANDOMIZE) {
if (is_32bit)
random_factor = get_random_int() % (1<<8);
else
random_factor = get_random_int() % (1<<12);
random_factor <<= PAGE_SHIFT;
}
/*
* Use standard layout if the expected stack growth is unlimited
* or we are running native 64 bits.
*/
if (rlimit(RLIMIT_STACK) == RLIM_INFINITY) {
mm->mmap_base = TASK_UNMAPPED_BASE + random_factor;
mm->get_unmapped_area = arch_get_unmapped_area;
} else {
mm->mmap_base = mmap_base(mm);
mm->get_unmapped_area = arch_get_unmapped_area_topdown;
}
}
开发者ID:AshishNamdev,项目名称:linux,代码行数:40,代码来源:mmap.c
示例17: arch_pick_mmap_layout
void arch_pick_mmap_layout(struct mm_struct *mm)
{
#if !defined(__tilegx__)
int is_32bit = 1;
#elif defined(CONFIG_COMPAT)
int is_32bit = is_compat_task();
#else
int is_32bit = 0;
#endif
/*
*/
if (!is_32bit || rlimit(RLIMIT_STACK) == RLIM_INFINITY) {
mm->mmap_base = TASK_UNMAPPED_BASE;
mm->get_unmapped_area = arch_get_unmapped_area;
mm->unmap_area = arch_unmap_area;
} else {
mm->mmap_base = mmap_base(mm);
mm->get_unmapped_area = arch_get_unmapped_area_topdown;
mm->unmap_area = arch_unmap_area_topdown;
}
}
开发者ID:romanbb,项目名称:android_kernel_lge_d851,代码行数:24,代码来源:mmap.c
示例18: format_corename
/* format_corename will inspect the pattern parameter, and output a
* name into corename, which must have space for at least
* CORENAME_MAX_SIZE bytes plus one byte for the zero terminator.
*/
static int format_corename(struct core_name *cn, struct coredump_params *cprm)
{
const struct cred *cred = current_cred();
const char *pat_ptr = core_pattern;
int ispipe = (*pat_ptr == '|');
int pid_in_pattern = 0;
int err = 0;
cn->size = CORENAME_MAX_SIZE * atomic_read(&call_count);
cn->corename = kmalloc(cn->size, GFP_KERNEL);
cn->used = 0;
if (!cn->corename)
return -ENOMEM;
/* Repeat as long as we have more pattern to process and more output
space */
while (*pat_ptr) {
if (*pat_ptr != '%') {
if (*pat_ptr == 0)
goto out;
err = cn_printf(cn, "%c", *pat_ptr++);
} else {
switch (*++pat_ptr) {
/* single % at the end, drop that */
case 0:
goto out;
/* Double percent, output one percent */
case '%':
err = cn_printf(cn, "%c", '%');
break;
/* pid */
case 'p':
pid_in_pattern = 1;
err = cn_printf(cn, "%d",
task_tgid_vnr(current));
break;
/* uid */
case 'u':
err = cn_printf(cn, "%d", cred->uid);
break;
/* gid */
case 'g':
err = cn_printf(cn, "%d", cred->gid);
break;
case 'd':
err = cn_printf(cn, "%d",
__get_dumpable(cprm->mm_flags));
break;
/* signal that caused the coredump */
case 's':
err = cn_printf(cn, "%ld", cprm->siginfo->si_signo);
break;
/* UNIX time of coredump */
case 't': {
struct timeval tv;
do_gettimeofday(&tv);
err = cn_printf(cn, "%lu", tv.tv_sec);
break;
}
/* hostname */
case 'h': {
char *namestart = cn->corename + cn->used;
down_read(&uts_sem);
err = cn_printf(cn, "%s",
utsname()->nodename);
up_read(&uts_sem);
cn_escape(namestart);
break;
}
/* executable */
case 'e': {
char *commstart = cn->corename + cn->used;
err = cn_printf(cn, "%s", current->comm);
cn_escape(commstart);
break;
}
case 'E':
err = cn_print_exe_file(cn);
break;
/* core limit size */
case 'c':
err = cn_printf(cn, "%lu",
rlimit(RLIMIT_CORE));
break;
default:
break;
}
++pat_ptr;
}
if (err)
return err;
}
/* Backward compatibility with core_uses_pid:
//.........这里部分代码省略.........
开发者ID:Scorpio92,项目名称:mediatek,代码行数:101,代码来源:coredump.c
示例19: siw_query_device
int siw_query_device(struct ib_device *ofa_dev, struct ib_device_attr *attr, struct ib_udata *udata)
{
struct siw_dev *sdev = siw_dev_ofa2siw(ofa_dev);
/*
* A process context is needed to report avail memory resources.
*/
if (in_interrupt())
return -EINVAL;
memset(attr, 0, sizeof *attr);
attr->max_mr_size = rlimit(RLIMIT_MEMLOCK); /* per process */
attr->vendor_id = sdev->attrs.vendor_id;
attr->vendor_part_id = sdev->attrs.vendor_part_id;
attr->max_qp = sdev->attrs.max_qp;
attr->max_qp_wr = sdev->attrs.max_qp_wr;
/*
* RDMA Read parameters:
* Max. ORD (Outbound Read queue Depth), a.k.a. max_initiator_depth
* Max. IRD (Inbound Read queue Depth), a.k.a. max_responder_resources
*/
attr->max_qp_rd_atom = sdev->attrs.max_ord;
attr->max_qp_init_rd_atom = sdev->attrs.max_ird;
attr->max_res_rd_atom = sdev->attrs.max_qp * sdev->attrs.max_ird;
attr->device_cap_flags = sdev->attrs.cap_flags;
attr->max_sge = sdev->attrs.max_sge;
attr->max_sge_rd = sdev->attrs.max_sge_rd;
attr->max_cq = sdev->attrs.max_cq;
attr->max_cqe = sdev->attrs.max_cqe;
attr->max_mr = sdev->attrs.max_mr;
attr->max_pd = sdev->attrs.max_pd;
attr->max_mw = sdev->attrs.max_mw;
attr->max_fmr = sdev->attrs.max_fmr;
attr->max_srq = sdev->attrs.max_srq;
attr->max_srq_wr = sdev->attrs.max_srq_wr;
attr->max_srq_sge = sdev->attrs.max_srq_sge;
attr->max_ah = 0;
attr->max_mcast_grp = 0;
attr->max_mcast_qp_attach = 0;
attr->max_total_mcast_qp_attach = 0;
attr->max_ee = 0;
attr->max_rdd = 0;
attr->max_ee_rd_atom = 0;
attr->max_ee_init_rd_atom = 0;
attr->atomic_cap = IB_ATOMIC_NONE;
memcpy(&attr->sys_image_guid, sdev->netdev->dev_addr, 6);
/*
* TODO: understand what of the following should
* get useful information
*
* attr->fw_ver;
* attr->max_map_per_fmr
* attr->max_raw_ipv6_qp
* attr->max_raw_ethy_qp
* attr->max_pkeys
* attr->page_size_cap;
* attr->hw_ver;
* attr->local_ca_ack_delay;
*/
udata->outlen = 0;
return 0;
}
开发者ID:asaf-levy,项目名称:softiwarp,代码行数:67,代码来源:siw_verbs.c
示例20: rlimit
static int rlimit(int keep_open)
{
int *tmpfd;
int nitems, i;
int *memchunk = NULL;
char *fmt;
struct rlimit rl;
char strbuff[256];
char strbuff1[81];
char fmt_u[] = "%u";
char fmt_lu[] = "%lu";
#ifdef HAVE_LONGLONG
char fmt_llu[] = "%llu";
if (sizeof(rl.rlim_max) > sizeof(long))
fmt = fmt_llu;
else
#endif
fmt = (sizeof(rl.rlim_max) < sizeof(long))?fmt_u:fmt_lu;
/* get initial open file limits */
if (getrlimit(RLIMIT_NOFILE, &rl) != 0) {
store_errmsg("getrlimit() failed", ERRNO);
fprintf(stderr, "%s\n", msgbuff);
return -1;
}
/* show initial open file limits */
#ifdef RLIM_INFINITY
if (rl.rlim_cur == RLIM_INFINITY)
strcpy(strbuff, "INFINITY");
else
#endif
sprintf(strbuff, fmt, rl.rlim_cur);
fprintf(stderr, "initial soft limit: %s\n", strbuff);
#ifdef RLIM_INFINITY
if (rl.rlim_max == RLIM_INFINITY)
strcpy(strbuff, "INFINITY");
else
#endif
sprintf(strbuff, fmt, rl.rlim_max);
fprintf(stderr, "initial hard limit: %s\n", strbuff);
/*
* if soft limit and hard limit are different we ask the
* system to raise soft limit all the way up to the hard
* limit. Due to some other system limit the soft limit
* might not be raised up to the hard limit. So from this
* point the resulting soft limit is our limit. Trying to
* open more than soft limit file descriptors will fail.
*/
if (rl.rlim_cur != rl.rlim_max) {
#ifdef OPEN_MAX
if ((rl.rlim_cur > 0) &&
(rl.rlim_cur < OPEN_MAX)) {
fprintf(stderr, "raising soft limit up to OPEN_MAX\n");
rl.rlim_cur = OPEN_MAX;
if (setrlimit(RLIMIT_NOFILE, &rl) != 0) {
/* on failure don't abort just issue a warning */
store_errmsg("setrlimit() failed", ERRNO);
fprintf(stderr, "%s\n", msgbuff);
msgbuff[0] = '\0';
}
}
#endif
fprintf(stderr, "raising soft limit up to hard limit\n");
rl.rlim_cur = rl.rlim_max;
if (setrlimit(RLIMIT_NOFILE, &rl) != 0) {
/* on failure don't abort just issue a warning */
store_errmsg("setrlimit() failed", ERRNO);
fprintf(stderr, "%s\n", msgbuff);
msgbuff[0] = '\0';
}
/* get current open file limits */
if (getrlimit(RLIMIT_NOFILE, &rl) != 0) {
store_errmsg("getrlimit() failed", ERRNO);
fprintf(stderr, "%s\n", msgbuff);
return -3;
}
/* show current open file limits */
#ifdef RLIM_INFINITY
if (rl.rlim_cur == RLIM_INFINITY)
strcpy(strbuff, "INFINITY");
else
#endif
sprintf(strbuff, fmt, rl.rlim_cur);
fprintf(stderr, "current soft limit: %s\n", strbuff);
#ifdef RLIM_INFINITY
if (rl.rlim_max == RLIM_INFINITY)
//.........这里部分代码省略.........
开发者ID:jerywang,项目名称:curl,代码行数:101,代码来源:lib537.c
注:本文中的rlimit函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论