小编lor*_*771的帖子

在 shell 中运行 cat 命令时出现错误的文件描述符

我正在尝试在我为类 Unix 操作系统 (xV6) 编写的 shell 中实现 I/O 重定向。在我为操作系统阅读的手册中,我发现以下代码将在 shell 中运行以执行 cat 命令:

char *argv[2];
argv[0] = "cat";
argv[1] = 0;
if(fork() == 0) {
    close(0);
    open("input.txt", O_RDONLY);
    exec("cat", argv);
}
Run Code Online (Sandbox Code Playgroud)

我修改了代码以在我的 shell 中运行,它的 argv 数组位于另一个函数中,但它保持了功能。出于某种原因,当我运行cat < input.txtshell 输出时:

cat: -: Bad file descriptor
cat: closing standard input: Bad file descriptor
Run Code Online (Sandbox Code Playgroud)

我还是 OS 编程的新手,所以我对 I/O 重定向的所有功能不是很清楚,但我认为我拥有的代码应该可以工作。什么可能导致问题。我有下面的 I/O 重定向代码:

case '<':
    ecmd = (struct execcmd*)cmd;
    rcmd = (struct redircmd*)cmd;

    if(fork() == 0){
      close(0);
      open("input", O_RDONLY);
      execvp(ecmd->argv[0], ecmd->argv );
    } …
Run Code Online (Sandbox Code Playgroud)

c linux operating-system xv6

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

如何在 MongoDB 模式中创建嵌套对象

我目前有一个 MongoDB 文档的以下架构,该文档应该保存用户数据:

var userSchema =  new mongoose.Schema({
  username: {type: String, unique : true},
  password: {type: String},
  firstname: String,
  lastname: String,
  sketches: 
              [ 
                {name: String, 
                 sketch: Array}
              ]
Run Code Online (Sandbox Code Playgroud)

sketches 属性需要是一个数组对象,其中每个对象都将草图的名称与保存草图数据的数组相关联。由于某种原因,架构最终创建如下:

{
    "__v" : 1,
    "_id" : ObjectId("57c4d7693aa85cea2acf4d4d"),
    "firstname" : "test",
    "lastname" : "name",
    "password" : "password123",
    "sketches" : [ 
        {
            "sketch" : []
        }
    ],
    "username" : "testname"
}
Run Code Online (Sandbox Code Playgroud)

我不太确定在 MongoDB 中创建嵌套对象的正确格式,但我假设它与 JSON 相同。应该如何构建模式来生成对象数组。

编辑:

从 PUT 请求插入文档的 Web 服务:

app.route("/addSketch/:username").put(function(req, res, next) {
  var user_name = req.params.username;
  User.findOne({username:user_name},function(err,foundObject){
    if(err){ …
Run Code Online (Sandbox Code Playgroud)

database mongoose nosql

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

如何使用JS(Internet Explorer)以编程方式下载文件

我有一个网页,其中有一个按钮,单击该按钮时会生成一个(通过从json进行转换)csv文件,该文件由浏览器下载。它实质上使用了jsfiddle中的逻辑。这一切都适用于chrome,但在IE中什么也没发生。

 var uri = 'data:text/csv;charset=utf-8,' + escape(CSV);

    // Now the little tricky part.
    // you can use either>> window.open(uri);
    // but this will not work in some browsers
    // or you will not get the correct file extension    

    //this trick will generate a temp <a /> tag
    var link = document.createElement("a");    
    link.href = uri;

    //set the visibility hidden so it will not effect on your web-layout
    link.style = "visibility:hidden";
    link.download = fileName + ".csv";

    //this part will append …
Run Code Online (Sandbox Code Playgroud)

html javascript csv jquery internet-explorer

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

Django - 从联系表单发送电子邮件时 SMTPSenderRefused

to_email我制作了一个页面,当单击表单内的提交按钮时,该页面应该向 发送电子邮件。我使用此链接禁用了验证码,正如我在这个视频播放列表中建议的那样,我一直在关注教程,但由于某种原因,我收到了身份验证错误。我在这里找到了类似问题的答案,但它涉及使用HOST_password文件中的字符串版本settings.py,我已经在这样做了。我使用的电子邮件和密码是正确的,那么是什么原因导致了这个问题呢?

以下是页面的回溯日志:

Django Version: 1.8.6
Python Version: 2.7.6
Installed Applications:
('django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'artist_tracker')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.middleware.security.SecurityMiddleware')


Traceback:
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
  132.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/var/www/students/test/bandsync/src/bandsync-repo/artist_tracker/views.py" in contact
  58.       send_mail(subject, contact_message, from_email, to_email, fail_silently =False)
File "/usr/local/lib/python2.7/dist-packages/django/core/mail/__init__.py" in send_mail
  62.     return mail.send()
File "/usr/local/lib/python2.7/dist-packages/django/core/mail/message.py" in send
  303.         return self.get_connection(fail_silently).send_messages([self])
File "/usr/local/lib/python2.7/dist-packages/django/core/mail/backends/smtp.py" in send_messages
  107.                 sent …
Run Code Online (Sandbox Code Playgroud)

python email django gmail smtp

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

计算一个数字中的设置位数

问题陈述是:

编写一个有效的程序来计算整数二进制表示的1的数量.

我在这里发现了一个关于这个问题的帖子,其中概述了在log(n)时间运行的多个解决方案,包括Brian Kernigan的算法和gcc __builtin_popcount()方法.

没有提到的一个解决方案是python方法:bin(n).count("1") 它也实现了相同的效果.此方法是否也在log n时间运行?

python algorithm bit-manipulation

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