是否有任何链接或材料可以让我了解更多有关Linux中不同错误号的信息?
目前在man errno中我为每个错误编号得到一行,但我想知道发生特定错误的条件或机会(用简短的单词更详细的描述)
例如
EADDRNOTAVAIL 99 /* Cannot assign requested address */
Run Code Online (Sandbox Code Playgroud)
当套接字试图绑定到机器本地不存在的ip-address时会出现上述错误.同样对于所有其他错误,是否有任何维基或材料的详细信息?
我是Google Cloud Platform中的一名非常基本的用户.
是否可以使用我的VM实例的GUI?我目前正在使用Centos7 VM.
我无法理解Linux中" readlink "系统调用的操作.
可以用简单的例子来解释它吗?
我怎么知道我的linux风格中提供的标准内核是否已经选择了DEBUG KERNEL ENABLED标志?
我认为应该启用DEBUG选项以便使用像kprobe,systemtap这样的工具?
当我开始用C语言编程时,我听说过以下场景.
" 尝试从外部访问,函数局部变量将导致错误(或垃圾值).因为当我们从函数返回时堆栈被清除 "
但我的下面的代码示例打印值为50.我正在使用最新的GCC编译器编译代码.
#include <stdio.h>
int * left();
int main()
{
int *p=left();
printf("%d\n",*p);
return 0;
}
int * left()
{
int i=50;
return &i;
}
Run Code Online (Sandbox Code Playgroud)
在这个问题上欢迎我.
我能知道C++中的行为吗?它类似于c ..
对于在我们手动重启机器之前从未退出的应用程序分析我有一个小小的疑问.
我使用像valgrind这样的工具来讨论内存泄漏或任何在某个时间后退出的应用程序的膨胀.
但有没有任何工具可以用来告诉应用程序在各个阶段创建的内存消耗,膨胀和开销,如果可能的话?
注意:我更感兴趣的是了解不退出的应用程序...如果应用程序退出,我可以使用像valgrind这样的工具..
我对C程序的程序执行布局图中的堆有疑问.
我知道所有动态分配的内存都分配在动态增长的堆中.但我想知道C程序的最大堆大小是多少?
我只是附加一个示例C程序...在这里我试图分配1GB内存到字符串甚至做memset ...
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char *temp;
mybuffer=malloc(1024*1024*1024*1);
temp = memset(mybuffer,0,(1024*1024*1024*1));
if( (mybuffer == temp) && (mybuffer != NULL))
printf("%x - %x\n", mybuffer, &mybuffer[((1024*1024*1024*1)-1)]]);
else
printf("Wrong\n");
sleep(20);
free(mybuffer);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我一次在3个实例中运行上面的程序,那么malloc应该至少在一个实例中失败[我感觉如此] ......但仍然是malloc成功的.
如果成功,我可以知道操作系统如何处理3GB的动态分配内存.
我需要有关内核模块的Makefile的帮助.即使是例子也会有很大的帮助.
目前我的模块代码在多个目录下.让我们说
<MAIN-DIR> --- l2.c
<SUB-DIR1> --- hello.c
<SUB-DIR2> --- bye.c
Run Code Online (Sandbox Code Playgroud)
对于上面的场景,我如何编写我的makefile.因为构建l2模块我需要l2.o hello.o和bye.o. 目前他们在多个目录中.
让我们假设我已经声明了某个数据类型的变量'i'(可能是int,char,float或double)......
注意:只需考虑声明'i',如果是int或char或float或double数据类型,则不要打扰.由于我想要一个通用的解决方案,我只是简单地提到变量'i'可以是任何一种数据类型,即int,char,float或double.
现在我可以找到没有sizeof运算符的变量'i'的大小吗?
如何使用C代码获取本地计算机的IP地址?
如果有多个接口,那么我应该能够显示每个接口的IP地址.
注意:请勿在C代码中使用ifconfig之类的任何命令来检索IP地址.
我宣布以下变量
unsigned long dstAddr;
unsigned long gateWay;
unsigned long mask;
Run Code Online (Sandbox Code Playgroud)
这些变量包含网络字节顺序的ipaddresses.因此,当我尝试使用inet_ntoa函数为掩码变量打印点符号时,它有时会打印奇怪的值.下面的代码在while循环中...循环n次.
printf("%s\t%s\t%s\t",inet_ntoa(dstAddr),inet_ntoa(gateWay),inet_ntoa(mask));
192.168.122.0 0.0.0.0 0.255.255.255
Run Code Online (Sandbox Code Playgroud)
但它应该是
192.168.122.0 0.0.0.0 255.255.255.0
Run Code Online (Sandbox Code Playgroud)
我打印了变量的十六进制值,它显示..
007aa8c0 00000000 ffffff00
Run Code Online (Sandbox Code Playgroud)
这是因为inet_ntoa ??
实际上我试图通过NETLINKS从内核中的254路由表中获取声明变量的值.我想我仍然应该使用inet_ntoa函数将值转换为点表示法.??
我试图从给定的单词中删除元音并返回单词.
例如
word = "helleeEoo"
Run Code Online (Sandbox Code Playgroud)
如果我使用如下所示的strip命令,我输出的是"hell"而不是"hll"
word = word.strip("aAeEiIoOuU")
Run Code Online (Sandbox Code Playgroud)
但如果我使用如下所示的join命令,它可以正常工作:
word = ''.join(c for c in word if c not in 'aAeEiIoOuU')
Run Code Online (Sandbox Code Playgroud)
我正在使用python 3,我想知道为什么在最终输出中出现strip命令'e'的情况?
c ×8
linux ×4
c++ ×2
linux-kernel ×2
heap ×1
makefile ×1
memory ×1
open-source ×1
profiling ×1
python ×1
python-3.x ×1
scope ×1
sizeof ×1
sockets ×1
system-calls ×1
systemtap ×1
ubuntu ×1
webkit ×1