小编Lip*_*eka的帖子

给定其路径的文件的存在

给定路径,有没有办法在不打开文件的情况下找出文件是否存在?

谢谢

c linux filesystems

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

为什么程序的行为取决于孩子完成的顺序?

我运行了几个程序,fork()然后execve()是第三个程序.这些程序的所有内容都已完成,但最后第三个程序没有返回...即命令提示符不会出现.

如果我wait()在调用程序中使用一个命令,那么execve只有当wait语句的顺序与execve程序结束的顺序匹配时,程序才会返回.为什么会这样?

这是简化的代码:

int main()
{
   int child1,child2,status;
   char*newargv1[] = {./xyz",NULL};
   char *newargv2[] = {./abc",NULL};

   if((child1 = fork())==0)
      execve(newargv1[0],newargv1,NULL);
   if((child2 = fork())==0)
      execve(newargv2[0],newargv2,NULL);

    while(wait(&status) != child1);
    while(wait(&status) != child2);
  }
Run Code Online (Sandbox Code Playgroud)

如果child1首先完成,它可以正常工作../xyz和./abc有一些简单的处理和控制到达终点.

c linux fork execve

2
推荐指数
1
解决办法
92
查看次数

警告:赋值从整数中生成指针而不进行强制转换

这是一个很常见的问题,但我没有得到答案,所以再次提出来.

我有结构定义为:

struct f_lock{
              int x;
              struct f_lock *next;
     };
Run Code Online (Sandbox Code Playgroud)

然后说我有一个功能:

struct f_lock *new_node()
{
   struct f_lock *new_f_lock;
   .....
   return new_f_lock;
}
Run Code Online (Sandbox Code Playgroud)

我从另一个函数调用的:

struct f_lock *new_f_lock;
new_f_lock = new_node(); //This line gives the error warning:assignment makes pointer from integer without a cast
Run Code Online (Sandbox Code Playgroud)

请帮忙谢谢

c linux

2
推荐指数
1
解决办法
8775
查看次数

gnuplot错误:格式错误的字符

是gnuplot的新手,但需要紧急使用。这是我使用的以下命令集:

set  terminal  latex
set output “conflict.tex”
set xtics ("random"  2, "sharing(0%)"  3, "sharing(10%)"  4, "sharing(25%)"   5, “sharing(50%)”  6, “stat”  7)
set ylabel “Conflict Percentage”
set xrange [0:9]
set yrange [0:60]
set xlabel “Traces”
set boxwidth 0.3
set style fill
plot 'D:\Utility Softwares\conflicts.dat' with boxes
Run Code Online (Sandbox Code Playgroud)

之后我得到“格式错误的字符”,不知道为什么

感谢帮助

gnuplot

2
推荐指数
1
解决办法
5403
查看次数

在套接字编程中返回指向结构的指针

在我的一个项目opendir()中,客户端程序中的调用使用LD_PRELOAD进行干预并发送到文件服务器进行处理(我在调用之前在服务器中进行了一些日志记录opendir()).因此,呼叫通过套接字.现在我如何opendir()通过套接字将指针返回到服务器到客户端的DIR结构(从调用返回).我将它转换为字符串并发送?

c sockets linux opendir

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

生成分布均匀的随机数

我有一套455件物品,我随机选择最多160件物品,更换.首先我种子srand()然后rand()用来选择每个数字.我观察到,在我最多160件物品的选择中,我倾向于看到至少10件物品被选中不止一次.这似乎表明随机数不是均匀分布的.

有没有办法让更均匀分布的随机数?

c linux random

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

向libc添加新功能

如何添加新的libc函数并从C程序中调用它?新函数不是任何内核级系统调用的包装器.它的功能将在用户空间完成.

c libc

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

使用strcpy()时出现分段错误?

我有一个全球结构:

struct thread_data{
   char *incall[10];
   int syscall arg_no;
   int client_socket;
};
Run Code Online (Sandbox Code Playgroud)

并在主()

char buffer[256];
char *incall[10];
struct thread_data arg_to_thread;

strcpy(incall[0],buffer);   /*works fine*/
strcpy(arg_to_thread.incall[0],buffer); /*causes segmentation fault*/
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况,请提出建议.

谢谢

c linux strcpy

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

写入文件

关于文件写入,我有一个非常简单的问题.

我有这个程序:

char buf[20];
size_t nbytes;

strcpy(buf, "All that glitters is not gold\n");
fd= open("test_file.txt",O_WRONLY);
write(fd,buf,strlen(buf));
close(fd);
Run Code Online (Sandbox Code Playgroud)

令我感到困惑的是,当我test_file.txt在运行此程序后打开文件时,我看到一些字符,如^C^@^@^@^^^@"所有闪闪发光的不是"之后的行:注意,buf的一部分未写入,而是出现了这些字符.为什么会这样?

c linux file

0
推荐指数
2
解决办法
156
查看次数

字符串长度为76的问题

我在这里不知所措.将在短时间内发布我的代码...只是它太长了,无法提取部分"令人不安"的代码.将expalin我的问题:我在一个结构数组中存储一个字符串(文件或目录的路径),{ char *path; size_t path_len}其中path是字符串path_en及其长度.在插入path_lenis 76时.从数组中提取strncpy字符串长度变为78或甚至数组中的字符串的简单strlen说77.

原始字符串长度小于77的所有其他情况都可以正常工作.

我很困惑.

c strlen strncpy

-1
推荐指数
1
解决办法
90
查看次数

tar和转储的算法

我需要知道tar,dump,cpio是如何工作的.这些程序背后的算法是什么?tar如何遍历文件系统树等.我在哪里可以获得详细信息?

谢谢

algorithm tar

-1
推荐指数
1
解决办法
548
查看次数

文件打开时出错:文件存在

open()的返回值为-1,在尝试使用perror()查找错误时,输出为"File exists".

如何查找错误或文件未打开的原因.

c linux file-io errno

-4
推荐指数
1
解决办法
4733
查看次数

标签 统计

c ×10

linux ×8

algorithm ×1

errno ×1

execve ×1

file ×1

file-io ×1

filesystems ×1

fork ×1

gnuplot ×1

libc ×1

opendir ×1

random ×1

sockets ×1

strcpy ×1

strlen ×1

strncpy ×1

tar ×1