小编use*_*348的帖子

c指向结构数组的指针

我知道这个问题已被问到很多,但我仍然不清楚如何访问结构.

我想创建一个结构数组的全局指针:

typdef struct test
{
    int obj1;
    int obj2;
} test_t;

extern test_t array_t1[1024];
extern test_t array_t2[1024];
extern test_t array_t3[1025];

extern test_t *test_array_ptr;

int main(void)
{
    test_array_ptr = array_t1;

    test_t new_struct = {0, 0};
    (*test_array_ptr)[0] = new_struct;
}
Run Code Online (Sandbox Code Playgroud)

但它给了我警告.我应该如何访问特定的结构[]

同样,我应该如何创建struct类型的指针数组?test_t *_array_ptr[2];

c arrays struct pointers

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

perl fork()&exec()

我正在尝试掌握fork()和exec()的概念,以用于我自己的学习目的.我正在尝试使用perl fork作为第二个相同的进程,然后使用它来执行.sh脚本.

如果我使用fork()和exec(),我可以让.sh脚本与我的perl脚本并行运行吗?Perl脚本不会等待子进程并继续执行.所以我的perl脚本并不关心子进程的输出,而只关心命令有效并且正在运行.有点像调用脚本在后台运行.

我是否可以通过某种安全措施来了解子进程是否正确退出?

parallel-processing perl fork exec

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

perl fork()exec(),子进程变得狂野

我正在使用Linux并且.shtcsh.

我已经做了一个非常基本的forkexec,但是我需要帮助来实现它的安全性.

基本上我的perl脚本.sh在子进程中调用脚本.但是当我Ctrl+c杀死父母时,孩子会忽略信号.

1)如何捕获SIGINT子进程?

2)运行.sh脚本的子进程仍然STDOUT到xterm的屏幕.我该如何删除?我在考虑在后台运行脚本

 exec("shell.sh args &");  
Run Code Online (Sandbox Code Playgroud)

但是没有经过测试,因为我需要弄清楚如何防止孩子先疯狂.

3)父进程(perl脚本)不等待子进程(.sh脚本).所以我读了很多关于这个孩子变成僵尸的故事 ??? 脚本完成后会发生吗?我怎么能阻止它?

$pid = fork();
if($pid < 0){
    print "Failed to fork process... Exiting";
    exit(-1);
    }
elsif ($pid ==0) {
    #child process
    exec("shell.sh args");
    exit(1);
    }
else { #execute rest of parent}
Run Code Online (Sandbox Code Playgroud)

linux perl fork process exec

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

如何查找不在括号中的字符

试图找到所有出现的字符

string1 = '%(example_1).40s-%(example-2)_-%(example3)s_'
Run Code Online (Sandbox Code Playgroud)

所以输出中出现的所有' - ''_'都不在括号中

['-', '_', '-', '_']
Run Code Online (Sandbox Code Playgroud)

不需要关心嵌套括号

python regex

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

如何手动唤醒perl睡眠功能?

我想知道是否有可能手动唤醒已进入睡眠状态的perl脚本.基本上我设置我的脚本在执行某事后一小时睡觉,10分钟后我意识到我希望它再次运行.

我正在运行的平台是linux,带有tcsh shell.

再次,谢谢你的帮助

perl sleep manual

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

perl负面看与分组背后

我有一个问题,试图让某个匹配与负面看后面一起工作

@list = qw( apple banana cherry); 
$comb_tlist = join ("|", @list);
$string1 = "include $(dir)/apple";
$string2 = "#include $(dir)/apple";

if( $string1 =~ /^(?<!#).*($comb_tlist)/)   #matching regex I tried, works kinda
Run Code Online (Sandbox Code Playgroud)

该数组包含一组与字符串匹配的变量.

我需要正则表达式匹配$ string1,但不是$ string2.它匹配$ string1,但它也匹配$ string2.任何人都可以告诉我这里我错了什么.谢谢!

regex perl grouping

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

标签 统计

perl ×4

exec ×2

fork ×2

regex ×2

arrays ×1

c ×1

grouping ×1

linux ×1

manual ×1

parallel-processing ×1

pointers ×1

process ×1

python ×1

sleep ×1

struct ×1