假设两个不同的进程独立打开同一个文件,因此在打开文件表(系统范围)中具有不同的条目。但它们引用相同的 i 节点条目。
由于文件描述符引用打开文件表(系统范围)中的不同条目,因此它们可能具有不同的文件偏移量。write
由于文件偏移量不同,是否会出现竞争条件?内核又是如何避免这种情况的呢?
书籍:Linux 编程接口;页码 95;第 5 章(文件 I/O:更多详细信息);第 5.4 节
我正在查看编译器生成的汇编代码。我正在使用 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)