小编use*_*264的帖子

将-1作为文件描述符传递给mmap

我对FC17 Linux中的"ls"命令进行了分析.

以下是输出.

execve("/usr/bin/ls", ["ls"], [/* 48 vars */]) = 0
brk(0)                                  = 0x27c1000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc765fa6000
...
Run Code Online (Sandbox Code Playgroud)

我没有得到将-1作为文件描述符传递给mmap调用的目的和结果,有人可以对此有所了解吗?

linux posix

8
推荐指数
2
解决办法
3264
查看次数

printf与换行符导致奇怪的seg.故障

我在执行此代码片段时发现了一个奇怪的行为

#include <stdio.h>

void main()
{
    char *a[10] = {"hi", "hello", "how"};
    int i = 0, j = 0;
    for (i = 0;i < 10; i++)
            printf("%s\n", a[i]);
}
Run Code Online (Sandbox Code Playgroud)

输出:

hi
hello
how
Segmentation fault
Run Code Online (Sandbox Code Playgroud)

但是如果我用printf语句中的空格字符替换'\n'字符,那么就没有seg.错误即将到来

hi hello how (null) (null) (null) (null) (null) (null) (null) 
Run Code Online (Sandbox Code Playgroud)

我在Ubuntu上使用gcc v4.4.3.换行符如何导致seg.printf中的错误?

c linux

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

关于C双类型的行为

我执行了以下代码片段(使用gcc编译)

#include <stdio.h>
void main()
{
    double b = 5 % 3 & 4 + 5 * 6;
    printf("%lf", b);
}
Run Code Online (Sandbox Code Playgroud)

输出是2.000000我没有得到它为什么这样的原因.

c

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

标签 统计

c ×2

linux ×2

posix ×1