我只是浏览gcc
源文件.在gcc.c
,我发现了类似的东西
extern int main (int, char **);
int
main (int argc, char **argv)
{
Run Code Online (Sandbox Code Playgroud)
现在我的疑问是extern
告诉编译器特定的函数不在这个文件中,但是会在项目的其他地方找到.但是在这里,定义main
是在extern
声明之后立即.extern
宣言服务的目的是什么?
看起来,在这个具体的例子中, extern
似乎表现得像export
我们在汇编中使用的那样,我们在模块之外输出一个特定的符号
有任何想法吗?
我的主要目的是在getchar
获得角色后立即返回,而不是等待ENTER密钥.我试过这个
int main()
{
setvbuf(stdin,NULL,_IONBF,0);
getchar();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
将其与原型进行比较 setvbuf
setvbuf ( FILE * stream, char * buffer, int mode, size_t size );
Run Code Online (Sandbox Code Playgroud)
它应该设置stdin
为无缓冲模式.
但仍然getchar()
在等待ENTER
我见过这样的相关帖子
这表明制作stdin
无缓冲的替代方法.但我很想知道为什么setvbuf
方法不起作用
更新了我的帖子......
我得到了以下程序.它运作/dev/kmem
和/dev/mem
.
我想我可以从代码中学到一些东西.但是当我在Beagle Board上运行它时,结果如下:
case 1: ( if(1) )
root@omap:/home/ubuntu/tom# ./kmem_mem /boot/System.map-3.0.4-x3
found jiffies at (0xc0870080) c0870080
/dev/kmem read buf = 319317
jiffies=319317 (read from virtual memory)
/dev/mem: the offset is 870080
the page size = 4096
mmap: Invalid argument
case 2: ( if(0) )
root@omap:/home/ubuntu/tom# ./kmem_mem /boot/System.map-3.0.4-x3
found jiffies at (0xc0870080) c0870080
/dev/kmem read buf = 333631
jiffies=333631 (read from virtual memory)
/dev/mem: the offset is 870080
/dev/mem read failed: Bad address
jiffies=0 (read from …
Run Code Online (Sandbox Code Playgroud) 我有以下情况.
我创建了一个管道.
分叉儿童过程.
Child 显式关闭管道的读取结束并写入管道的写入端并退出而不关闭任何东西(退出应该代表子节点关闭所有打开的文件/管道描述符,我推测).
Parent 显式关闭管道的写端,并从管道的读取端读取,fgets
直到fgets
返回NULL.即它完全读取.
现在我的问题是,为什么父母需要在完成读取后显式关闭管道的读取端?一旦从读端读取完整数据,系统是否完全删除管道是不明智的?
我在父语句中明确地关闭了读取结束,并且Too many file descriptors
在打开更多管道时迟早会出错.我的假设是,一旦管道写入结束并且数据已从读取端完全读取,系统会自动删除管道.因为你不能从管道两次!
那么,一旦数据完全读取并写入结束,系统背后的理由是不删除管道?
有时我从不同的设计团队获得图书馆.一个使用gcc 3.x,另一个使用gcc 4.x. 如何识别这两个库是否兼容?我知道它与libstdc ++有关,但你能否给我一个明确的答案?
我知道可以通过拉出kmsg
或dmesg
通过内容来获取启动日志ADB
.
但我不知道如何在Android中检索关机日志,因为Android中没有/var
文件夹(大多数桌面Linux发行版通常存储其关机日志的地方).
那么如何在Android中获取关机日志?
我知道动态加载器的作用.它在运行时应用程序请求时加载程序,从而最小化内存占用量.但我真的没有得到这个动态链接器是什么?它的优点是什么?我读了很多网上的东西,但他们用抽象的语言说话.
有人可以用一些简单的例子来解释我吗?
我编写了这段代码,将包含许多空格和/或制表符的单词的字符串拆分为一个只包含单词的字符串向量.
#include<iostream>
#include<vector>
#include<boost/algorithm/string/split.hpp>
#include<boost/algorithm/string.hpp>
int main()
{
using namespace std;
string str("cONtainS SoMe CApiTaL WORDS");
vector<string> strVec;
using boost::is_any_of;
boost::algorithm::split(strVec, str, is_any_of("\t "));
vector<string>::iterator i ;
for(i = strVec.begin() ; i != strVec.end(); i++)
cout<<*i<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我期待一个输出
cONtainS
SoMe
CApiTaL
WORDS
Run Code Online (Sandbox Code Playgroud)
但是在空间中输出空间作为strVec中的一个元素即
cONtainS
SoMe
CApiTaL
WORDS
Run Code Online (Sandbox Code Playgroud) 我读了这个问题之一,被要求接受软件工程师的面试.
如果有1000个网站和1000个用户,请编写一个程序和数据结构,以便我可以实时查询以下内容:1.给定任何用户,我得到他/她访问过的所有网站的列表2.给予任何网站,我得到了访问它的所有用户的列表.
我认为他们想要一种伪代码或设计算法.
你们能为此提出任何建议吗?
我开始编写我的第一个Java程序.
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); // Display the string.
}
}
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,程序运行正常.但根据我的OOP知识,a class
只是一个抽象的概念,并没有生出来,直到你创造了一个同类的对象.然后,通过该对象,我们调用类中的方法/函数.
但是在这个特定的例子中,似乎main
即使没有创建对象也会调用该方法class
HelloWorldApp
对象是否在其他地方创建?如果是这样,那部分代码如何知道我的class
名字HelloWorldApp
?