小编ark*_*rka的帖子

文件写入期间的竞争条件

假设两个不同的进程独立打开同一个文件,因此在打开文件表(系统范围)中具有不同的条目。但它们引用相同的 i 节点条目。

由于文件描述符引用打开文件表(系统范围)中的不同条目,因此它们可能具有不同的文件偏移量。write由于文件偏移量不同,是否会出现竞争条件?内核又是如何避免这种情况的呢?

书籍:Linux 编程接口;页码 95;第 5 章(文件 I/O:更多详细信息);第 5.4 节

c linux inode file unistd.h

5
推荐指数
2
解决办法
2982
查看次数

链接之前用汇编语言调用函数

我正在查看编译器生成的汇编代码。我正在使用 C 编程语言和GCC编译器。

我用 C 语言编写了一个函数,它通过调用另一个函数将两个数字相加,并将结果存储在作为参数传递给该函数的指针所指向的变量中。

void add_two_num(int x, int y, int * dest)
{
  int val;

  val = dummy(x, y);
  *dest = val;
}
Run Code Online (Sandbox Code Playgroud)

我将源代码编译为目标代码(链接未完成),然后使用反汇编代码objdump -d

+0x9行中数字的含义是什么call d <add_two_num+0x9>
当该行将被实际的函数调用替换时,这在链接阶段有用吗?

void add_two_num(int x, int y, int * dest)
{
  int val;

  val = dummy(x, y);
  *dest = val;
}
Run Code Online (Sandbox Code Playgroud)

x86 assembly gcc x86-64 disassembly

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

标签 统计

assembly ×1

c ×1

disassembly ×1

file ×1

gcc ×1

inode ×1

linux ×1

unistd.h ×1

x86 ×1

x86-64 ×1