我知道这个问题已被问到很多,但我仍然不清楚如何访问结构.
我想创建一个结构数组的全局指针:
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];?
我正在尝试掌握fork()和exec()的概念,以用于我自己的学习目的.我正在尝试使用perl fork作为第二个相同的进程,然后使用它来执行.sh脚本.
如果我使用fork()和exec(),我可以让.sh脚本与我的perl脚本并行运行吗?Perl脚本不会等待子进程并继续执行.所以我的perl脚本并不关心子进程的输出,而只关心命令有效并且正在运行.有点像调用脚本在后台运行.
我是否可以通过某种安全措施来了解子进程是否正确退出?
我正在使用Linux并且.sh在tcsh.
我已经做了一个非常基本的fork和exec,但是我需要帮助来实现它的安全性.
基本上我的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) 试图找到所有出现的字符
string1 = '%(example_1).40s-%(example-2)_-%(example3)s_'
Run Code Online (Sandbox Code Playgroud)
所以输出中出现的所有' - ''_'都不在括号中
['-', '_', '-', '_']
Run Code Online (Sandbox Code Playgroud)
不需要关心嵌套括号
我想知道是否有可能手动唤醒已进入睡眠状态的perl脚本.基本上我设置我的脚本在执行某事后一小时睡觉,10分钟后我意识到我希望它再次运行.
我正在运行的平台是linux,带有tcsh shell.
再次,谢谢你的帮助
我有一个问题,试图让某个匹配与负面看后面一起工作
例
@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.任何人都可以告诉我这里我错了什么.谢谢!