小编Vik*_*ram的帖子

"固有的线程安全"是什么意思?

我遇到过这一行"有些功能本质上是线程安全的,例如memcpy()"

维基百科将"线程安全"定义为:

如果一段代码仅以保证多个线程同时安全执行的方式操作共享数据结构,则它是线程安全的.

好.但本质上意味着什么呢?它与继承有关吗?

c java multithreading thread-safety

35
推荐指数
3
解决办法
3447
查看次数

管道和重定向

管道和重定向之间的确切区别是什么?

我们应该在哪里使用管道?我们应该在哪里使用重定向?

他们内部如何工作?

bash shell redirect pipe

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

执行printf()和分段错误

#include<stdio.h>

int main()
{
    char *name = "Vikram";
    printf("%s",name);
    name[1]='s';
    printf("%s",name);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

终端上没有打印输出,只是出现分段故障.但是当我在GDB中运行它时,我得到以下 -

Program received signal SIGSEGV, Segmentation fault.
0x0000000000400525 in main () at seg2.c:7
7       name[1]='s';
(gdb) 
Run Code Online (Sandbox Code Playgroud)

这意味着程序在第7行接收SEG故障(显然我不能在常量字符数组上写入).那么为什么不执行第6行的printf()?

c printf segmentation-fault

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

Linux内核中的生物结构

我正在阅读Robert Love的Linux内核开发.我不明白这段bio结构:

内核中块I/O的基本容器是生物结构,其定义在<linux/bio.h>.此结构表示作为段列表在行(活动)的块I/O操作.段是在内存中连续的缓冲区块.因此,各个缓冲区在存储器中不需要是连续的.通过允许以块为单位描述缓冲区,bio结构为内核提供了从存储器中的多个位置执行甚至单个缓冲区的块I/O操作的能力.像这样的向量I/O称为分散 - 聚集I/O.

  1. 究竟是什么flight(active)意思?
  2. "作为细分列表" - 我们是在谈论这种细分吗?
  3. "通过允许缓冲区......在内存中"是什么意思?

linux-kernel block-device

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

三元运算符和类型转换中的混淆

我经历了这个问题 -

为什么结果:1 ? (int *)0 : (void *)0
与以下结果不同: 1 ? (int *)0 : (void *)1

它有何不同?它应该是0(int*)0.
如何查看结果?
我们可以在哪里使用这种表达方式?

c ternary-operator type-conversion void-pointers

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

谁在C中调用主函数

可能重复:
在C中,main()方法最初是如何调用的?

我想知道,谁在C中调用主函数.主函数的
实际用途是什么(为什么main是特殊/必要的)?
我可以用主函数编写ac程序吗?

c linux program-entry-point

6
推荐指数
2
解决办法
9675
查看次数

lash终端中的l(小写L)命令

vikram@vikram-Studio-XPS-1645:~/comp$ l
3rdParty/    que.ico     SE32.EXE   start.fgx  Supp/         WebResources/
autorun.inf  Readme.txt  START.EXE  start.fgz  Walkthrough/
vikram@vikram-Studio-XPS-1645:~/comp$ ls
3rdParty     que.ico     SE32.EXE   start.fgx  Supp         WebResources
autorun.inf  Readme.txt  START.EXE  start.fgz  Walkthrough
vikram@vikram-Studio-XPS-1645:~/comp$ 
Run Code Online (Sandbox Code Playgroud)

这两个命令有什么区别?

我试过了$ which l,但没有输出.

也没有结果$ man l.

我也尝试过谷歌.

bash shell terminal command

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

如何调试启动加载程序?

我使用gdb调试了小程序.

我有GRUB的源代码.GRUB的第二阶段是用C语言编写的.我可以使用gdb进行调试吗?

是否可以调试引导加载程序?如果是,那怎么样?

debugging grub bootloader

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

没有标题的C程序

我在C写"hello world"程序.

void main()
{ printf("Hello World"); }
// note that I haven't included any header file
Run Code Online (Sandbox Code Playgroud)

该程序编译时带有警告

vikram@vikram-Studio-XPS-1645:~$ gcc hello.c 
hello.c: In function ‘main’:
hello.c:2:2: warning: incompatible implicit declaration of built-in function ‘printf’
vikram@vikram-Studio-XPS-1645:~$ ./a.out 
Hello Worldvikram@vikram-Studio-XPS-1645:~$
Run Code Online (Sandbox Code Playgroud)

这怎么可能?操作系统如何在不包含任何标题的情况下链接库?

c linux compilation dynamic-linking

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

C和java中的链接列表

1)我可以在C中创建一个链接列表而不使用指针(并且不使用结构)?

2)Java不使用指针然后如何在Java中实现链表?

c java linked-list

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

回调函数的应用

我想知道callback functions实际使用的位置?

有没有办法在C/C++中实现回调函数(除了使用函数指针)?

请解释以下行 -

" A callback can be used as a simpler alternative to polymorphism and generic programming"

谢谢

c c++ polymorphism callback

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