小编d0m*_*n1c的帖子

如何创建与现有目录具有相同访问权限的目录?

我需要创建一个与另一个文件夹具有相同权限的新文件夹.我的最终目标是完全复制目录及其内容.这是我的第一步,我似乎无法让它工作.

我的内容如下:

struct stat srcstat;
int srcstatus = stat(source, &srcstat);
if (chdir(dest))
    if (mkdir(dest, srcstat.st_mode)){
        printf("error: could not create <dest>\n");
        exit(1);
    }
Run Code Online (Sandbox Code Playgroud)

source是一个cstring,其中包含我想要使用其权限的文​​件夹的路径.dest是带有新文件夹路径的ac字符串.

具有旧文件夹和新文件夹权限的ls如下所示

drwxrwxrwx 2 kingacev CS-Majors 4096 Apr 18 17:03 test
drwxr-xr-x 2 kingacev CS-Majors 4096 Apr 18 18:12 test3
Run Code Online (Sandbox Code Playgroud)

我的第一个想法是我不能以我正在尝试的方式使用srcstat.st_mode.如果是这样的话,是否有同样简单的方法来做我想做的事情?如果没有,我离这个标记有多远?

c unix stat

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

如何防止execv杀死我的程序?

我的任务是编写一个简单的linux shell。我正在使用外部命令。我们需要使用execv。

for (int i = 0; i < count; i++){
  char path[1024];
  strcpy(path, PATHS[i]);         // PATHS is an array of cstrings, the paths in $PATH
  strcat(path, "/");
  strcat(path, command[0]);       // command and commands are essentially the same
  printf("%d %s",i,path);         // they are essentially argv[]
  if (!execv(path, commands))     // for ls -l $HOME
    break;                        // commands[0] = ls [1] = -l [2] = my home dir
Run Code Online (Sandbox Code Playgroud)

现在我只用ls进行测试。ls完全按照应有的方式运行,但是execv成功后,程序立即关闭。有什么办法可以让我继续使用execv检查正确的路径,并让程序在execv成功后继续运行?

c linux execv

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

如何让SQL查询返回带有算术结果的额外列?

我目前的疑问是

$sql="SELECT * FROM events, times 
WHERE events.email = '$email' 
and 
events.type = times.type";
Run Code Online (Sandbox Code Playgroud)

events.date是形式为yyyy-mm-dd的sql中的日期

times.time是sql中相同形式的日期,但是0000-mm-dd.

我希望我的查询中有一个额外的列,其中包含一个事件的建议开始日期.

即.events.date - times.time

我可以让sql返回包含推荐开始日期的额外列吗?

还是我离开了标记?

任何想法都表示赞赏.

编辑:

这就是我现在拥有的:

SELECT *, date_diff(events.date, times.time) AS recommended FROM events, times WHERE events.email = '$email' and events.type = times.type ORDER by events.date
Run Code Online (Sandbox Code Playgroud)

从我可以告诉它不应该失败,但确实如此.它抱怨我的语法.

编辑:

它现在正在工作,谢谢

这就是我所拥有的

$sql="SELECT *, date_format(events.date - times.time, '%Y-%m-%d') as recommended 
FROM events, times 
WHERE events.email = '$email' 
and 
events.type = times.type ORDER by events.date";
Run Code Online (Sandbox Code Playgroud)

mysql sql date

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

标签 统计

c ×2

date ×1

execv ×1

linux ×1

mysql ×1

sql ×1

stat ×1

unix ×1