小编nun*_*nos的帖子

管道实施

我正在尝试实现支持管道的linux shell.我已经完成了简单的命令,在后台运行的命令,重定向,但仍然缺少管道.

我已经阅读了它并看到了一些代码片段,但仍然无法找到一个可行的解决方案.

到目前为止我所拥有的:

int fd[2];

pipe(fd);

pid_t pid = fork();

if (pid == -1)  
   return -1;  

if (pid == 0)  
{  
   close(fd[1]); //close write to pipe, in child
   execlp("cat", "cat", "names.txt", NULL);
}

else
{
   close(fd[0]); //close read from pipe, in parent
   execlp("sort", "sort", NULL);
}  
Run Code Online (Sandbox Code Playgroud)

我是一个新手程序员,你可能会说,当我编写一些我不太了解的东西时,显然就是这种情况,我喜欢从一些非常简单和具体的东西开始,然后从那里开始构建.

因此,在能够在管道中实现三个或更多不同的命令之前,我希望能够计算"ls names.txt | sort"或类似的东西,其中names.txt是一个名称非常无序的文件.

更新了代码,但仍然无效.

谢谢.

c linux shell pipe piping

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

用于匹配音乐和弦的正则表达式

我正在尝试编写一个函数来解析音乐和弦的字符串表示.

示例:C大调和弦 - > Cmaj(这是我要解析的)

为了说清楚,和弦由三个不同的部分组成:

  • 笔记(C,D,E,F,G,A)
  • 该笔记的意外事件(#,##,b,bb)
  • 和弦的名字

对于那些精通音乐的人来说,我并不是在考虑削减和弦(故意).

以下功能几乎正常.但是,对于以下情况,它仍然不起作用:

  • "C#maj"#匹配并且应该
  • "C#maj7"#匹配并且应该
  • "C#maj2" #mathches,不应该

我想如果我可以让chords正则表达式部分被迫在正则表达式的末尾,那就行了.我已尝试$在此String之前和之后使用它们但它不起作用.

任何的想法?谢谢.

public static void regex(String chord) {                
    String notes = "^[CDEFGAB]";
    String accidentals = "[#|##|b|bb]";
    String chords = "[maj7|maj|min7|min|sus2]";
    String regex = notes + accidentals + chords; 
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher(chord);
    System.out.println("regex is " + regex);
    if (matcher.find()) {
        int i = matcher.start();
        int j = matcher.end();
        System.out.println("i:" + i + " j:" + j); …
Run Code Online (Sandbox Code Playgroud)

regex music-notation

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

如何在PHP代码中安全地存储密码?

如何在PHP代码中输入密码并保证在浏览器中查看页面的人无法检索到它?

是:<?php $password = 'password' ?>够了吗?这样做有更好,更安全的方法吗?

php passwords

8
推荐指数
3
解决办法
2万
查看次数

将 prop 传递给 vuejs mixin 但属性未定义

当我尝试将 prop 传递给 mixin 时,我得到一个Cannot read property of undefined error.

我做错了什么或者我还能如何克服这个问题?

mixins/BarMixin.js:

export default baz => {
  return {
    // my mixin code...
  }
}
Run Code Online (Sandbox Code Playgroud)

components/FooComponent.vue:

<script>
import BarMixin from '@/mixins/BarMixin.js'

export default {
  mixins: [BarMixin(this.baz)],
  props: {
    bar: {
      type: Boolean,
      required: true,
    },
  },
}
</script>
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用它,如下所示:

pages/foo.vue

<template>
  <FooComponent :baz="true" />
</template>

<script>
import FooComponent from '@/components/FooComponent.vue'
export default {
  components: {
    FooComponent,
  },
}
</script>

Run Code Online (Sandbox Code Playgroud)

mixins vue.js vue-mixin

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

如何在href中单击具有javascript:__ doPostBack的链接?

我正在使用模块'mechanize'在python中编写一个屏幕抓取器脚本,我想在一个在href中有javascript:__ doPostBack的链接上使用mechanize.click_link()方法.我相信我试图解析的页面是使用AJAX.

注意:mech是mechanize.Browser()

>>> next_link.__class__.__name__
'Link'
>>> next_link
Link(base_url='http://www.citius.mj.pt/Portal/consultas/ConsultasDistribuicao.aspx', url="javascript:__doPostBack('ctl00$ContentPlaceHolder1$Pager1$lnkNext','')", text='2', tag='a', attrs=[('id', 'ctl00_ContentPlaceHolder1_Pager1_lnkNext'), ('title', 'P\xc3\xa1gina seguinte: 2'), ('href', "javascript:__doPostBack('ctl00$ContentPlaceHolder1$Pager1$lnkNext','')")])
>>> req = mech.click_link(next_link)
>>> req
<urllib2.Request instance at 0x025BEE40>
>>> req.has_data()
False
Run Code Online (Sandbox Code Playgroud)

我想在点击链接后检索页面源.

javascript python mechanize

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

在下拉菜单上帮助jquery onchange事件

我希望每次更改下拉列表的值时都能发出警报消息.我认为下面的代码应该有效但不是出于某些不明原因.有什么想法吗?

谢谢.

<html>
<head>
<script type="text/javascript" src="lib/jquery.js"></script>
</head>
<body>

<script type="text/javascript">
    $("select").change(function(){
        alert(this.id);
    });
</script>


<select>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

jquery select drop-down-menu

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

Easy C enum问题

我刚刚开始使用C语言,并且我被要求回答一些编码练习,其中出现以下代码:

typedef enum {
  false = 0,
  true = 1
} Bool;
Run Code Online (Sandbox Code Playgroud)

有人可以提供一个简短而明确的解释吗?

非常感谢.

c enums

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

如何获得char**的长度?

快问问题:如何知道char*foo []的长度?

谢谢.

c arrays

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

FIFO的实施

请考虑以下代码:

writer.c

mkfifo("/tmp/myfifo", 0660);

int fd = open("/tmp/myfifo", O_WRONLY);

char *foo, *bar;

...

write(fd, foo, strlen(foo)*sizeof(char));
write(fd, bar, strlen(bar)*sizeof(char));
Run Code Online (Sandbox Code Playgroud)

reader.c

int fd = open("/tmp/myfifo", O_RDONLY);

char buf[100];
read(fd, buf, ??);
Run Code Online (Sandbox Code Playgroud)

我的问题是:

既然事先不知道foo和bar有多少字节,我怎么知道从reader.c读取多少字节?
因为,例如,如果我在阅读器中读取10个字节,并且foo和bar一起小于10个字节,我将把它们放在同一个变量中并且我不想要它们.
理想情况下,我会为每个变量都有一个读取函数,但我再次不知道数据有多少字节.
我想在write.c中使用分隔符在write for foo和bar之间添加另一个写指令,然后我就没有问题从reader.c解码它.这是怎么回事?

谢谢.

c linux fifo

5
推荐指数
2
解决办法
2702
查看次数

解决Prolog中的逻辑谜题

我正在阅读"现在学习Prolog",其中一个我自己无法解决的练习如下:

有一条街道有三个相邻的房子,都有不同的颜色.它们是红色,蓝色和绿色.不同国籍的人住在不同的房子里,他们都有不同的宠物.以下是关于它们的更多事实:

  • 英国人住在红房子里.
  • 美洲虎是西班牙家庭的宠儿.
  • 日本人生活在蜗牛守护者的右边.
  • 蜗牛守护者住在蓝房子的左边.

谁养斑马?

定义一个谓词zebra/1,告诉你斑马所有者的国籍.

提示:想想房屋和街道的代表.编写Prolog中的四个约束.member并且sublist可能是有用的谓词.

任何想法如何在Prolog下编码?谢谢.

prolog zebra-puzzle

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