小编Dim*_*lov的帖子

管道在 C 中的实现

我刚刚完成了我的 shell 解释器,但我认为我的管道实现是错误的。

它正在工作,像ls | cat -e工作这样的基本东西,但segmentation fault如果文件描述符超过 60 ko,我害怕可能性。当我做一个超过 60 ko 的文件的 cat 时,我也发现了一个无限循环。例如,如果 do a cat foo | cat -efoo 是一个长文件,则会发生无限循环。

或其他示例,当我执行cat /dev/urandom | cat -e此操作时不会向我显示任何显示,因此它首先执行cat /dev/urandom,然后执行cat -e.

这是我的代码:

int son(int *fd_in, int p[2], t_list *cmd, char **env)
{
    (void)env;
    dup2(*fd_in, 0);
    if (cmd->act != ENDACT && cmd->act != LEFT && cmd->act != DLEFT)
        dup2(p[1], 1);
    close(p[0]);
    execve(cmd->av[0], cmd->av, NULL);
    return (-1);
}

t_list *execute_pipe(t_list *cmd, int …
Run Code Online (Sandbox Code Playgroud)

c unix linux

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

为什么QTcpSocket不写?我需要刷新它以使其发送我的数据

我在文档中读到要用QTcpSocket发送数据包我可以使用该write方法.但是当我这样做时,我的服务器没有收到它.我需要打电话flushwaitForByteWritten发送它.

TCPClient::TCPClient(Client *babel , const std::string &hostname, unsigned short port, QObject *parent) : QObject(parent), client(babel),  hostName(hostname), port(port), is_connected(false)
{
  this->tcpSocket = new QTcpSocket(this);
  connect(this->tcpSocket, SIGNAL(readyRead()),this, SLOT(readMessage()));
  connect(this->tcpSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(displayError(QAbstractSocket::SocketError)));
  connect(this->tcpSocket, SIGNAL(connected()), this, SLOT(connectReady()));
  connect(this->tcpSocket, SIGNAL(disconnected()), this, SLOT(disconnectedReady()));

}

TCPClient::~TCPClient()
{

}

bool TCPClient::initiateService()
{
  this->tcpSocket->connectToHost(this->hostName.c_str(), this->port);
  this->tcpSocket->waitForConnected(5000);
}

void TCPClient::connectReady()
{
  this->is_connected = true;
}

void TCPClient::disconnectedReady()
{

}


bool TCPClient::sendBabelPacket(Protocol::BabelPacket &packet)
{
  if(this->tcpSocket->state() == QAbstractSocket::ConnectedState && is_connected)
  {
    std::cout << "writing ... …
Run Code Online (Sandbox Code Playgroud)

c++ sockets qt

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

我可以使用哪种方法来解析困难的字符串?

我在ruby中做一个mysql查询,它给了我一个这样的字符串:

O:8:"stdClass":4:{s:7:"updates";a:1:{i:0;O:8:"stdClass":10:{s:8:"response";s:6:"latest";s:8:"download";s:65:"https://downloads.wordpress.org/release/fr_FR/wordpress-4.2.4.zip";s:6:"locale";s:5:"fr_FR";s:8:"packages";O:8:"stdClass":5:{s:4:"full";s:65:"https://downloads.wordpress.org/release/fr_FR/wordpress-4.2.4.zip";s:10:"no_content";b:0;s:11:"new_bundled";b:0;s:7:"partial";b:0;s:8:"rollback";b:0;}s:7:"current";s:5:"4.2.4";s:7:"version";s:5:"4.2.4";s:11:"php_version";s:5:"5.2.4";s:13:"mysql_version";s:3:"5.0";s:11:"new_bundled";s:3:"4.1";s:15:"partial_version";s:0:"";}}s:12:"last_checked";i:1439805713;s:15:"version_checked";s:5:"4.2.4";s:12:"translations";a:0:{}}
Run Code Online (Sandbox Code Playgroud)

我需要解析这一部分:s:6:"最新"以了解它是否是最新版本或升级版本.

我可以用哪种方法在ruby中做到这一点?我刚开始使用这种语言,这是我的第一个面向对象的语言,我只习惯做C语言.

ruby

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

为什么rand()在脚本中运行程序时会返回相同的值?

srand(time(NULL))在执行开始时有一个,然后我正在做

*pos_x = (rand() % HEIGHT);
*pos_y = (rand() % WIDTH);
Run Code Online (Sandbox Code Playgroud)

生成随机数.

当我手动运行程序时这很好用,但是当我用这个脚本在我的程序中吃午饭时:

#!/bin/bash

i="0"
team_number="0"

while [ $i -lt 30 ]
do
  ./lemipc `pwd` team_number
i=$[$i+1]
  if (( $i % 10 == 0 ))
  then
    team_number=$[$team_number+1]
fi
echo "create process $i"
usleep 10000
done
Run Code Online (Sandbox Code Playgroud)

我总是为所有流程获得相同的数字.

我甚至试图添加一个usleep来解决这个问题,但它仍然无效.我得到这个例子:

97 51 
create process 1
97 51 
create process 2
97 51 
create process 3
97 51 
Run Code Online (Sandbox Code Playgroud)

其中97是pos_x和51 pos_y.

知道为什么吗?

c

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

是否可以按比例向 qt 设计器提供尺寸?

例如,我希望layoutLeftMargin属性的值等于父窗口小部件的1/3。因此,当我调整窗口大小时,小部件的比例仍将保持不变。

否则,如果 QtDesigner 无法实现,我该如何用代码来实现呢?

qt

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

使用Fuel和Result将字节数组转换为Json

我想使用Fuel和Result在JSON对象中获取响应主体。这是我的回调代码:

private fun LoginCallback(result: Result<Any, Exception>?)
{
    mAuthTask = null
    showProgress(false)
    val (data, error) = result ?: return (Toast.makeText(applicationContext,
            R.string.error_wrong, Toast.LENGTH_SHORT).show())

    result.success {
        val dataJson = data as Json
        val user: SharedPreferences = getSharedPreferences(SAVED_USER_INFOS, 0)
        val editor = user.edit()
        editor.putString(SAVED_ACCESS_TOKEN, dataJson.obj().getString(SAVED_ACCESS_TOKEN))
        editor.putString(SAVED_TOKEN_LIFETIME, dataJson.obj().getString(SAVED_TOKEN_LIFETIME))
        editor.apply()
        finish()
        startActivity<MainActivity>()
    }
    result.failure {
        showProgress(false)
        mPasswordView!!.error = getString(R.string.error_incorrect_password)
        mPasswordView!!.requestFocus()
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将数据(字节数组)转换为Json时,出现了以下错误:

java.lang.ClassCastException: byte[] cannot be cast to com.github.kittinunf.fuel.android.core.Json
Run Code Online (Sandbox Code Playgroud)

知道这可能来自哪里吗?在我改用另一种API路由之前,代码一直在工作。

我验证了JSON字符串存储在数据中。

API响应似乎是有效的。

                                                        Response : OK
                                                        Length : 220
                                                        Body : {"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI1OWVlZDU4NzIxMjcwMzc2MDUwZmY2MjAiLCJpYXQiOjE1MDkxNzcds0MjgsImV4cCI6MTU5NTU3NzQyOH0.VwAkLeKW2SL3bMDhQIs-0Pwx0kMg9xgzpDLxprbCUvQ","tokenExpirationDate":1509263828796}
                                                        Headers : (13)
                                                        null …
Run Code Online (Sandbox Code Playgroud)

android json kotlin

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

如何将成员函数绑定到std :: function?

我想做一个OIS :: Keys(int)和std :: function的数组.

我有这个 :

struct UserCommands
{
  OIS::KeyCode key;
  std::function<bool(Worms *, const Ogre::FrameEvent& evt)> func;
};

UserInput input;

UserCommands usrCommands[] =
{
  {
    OIS::KC_A, std::bind(&input, &UserInput::selectBazooka)
  },
};
Run Code Online (Sandbox Code Playgroud)

但是当我尝试编译它时,我有这个编译错误:

    In file included from includes/WormsApp.hh:5:0,
                     /src/main.cpp:2:
/includes/InputListener.hh:26:25: error: could not convert ‘std::bind(_Func&&, _BoundArgs&& ...) [with _Func = UserInput*; _BoundArgs = {bool (UserInput::*)(Worms*, const Ogre::FrameEvent&)}; typename std::_Bind_helper<std::__is_socketlike<_Func>::value, _Func, _BoundArgs ...>::type = std::_Bind<UserInput*(bool (UserInput::*)(Worms*, const Ogre::FrameEvent&))>](&UserInput::selectBazooka)’ from ‘std::_Bind_helper<false, UserInput*, bool (UserInput::*)(Worms*, const Ogre::FrameEvent&)>::type {aka std::_Bind<UserInput*(bool (UserInput::*)(Worms*, const Ogre::FrameEvent&))>}’ to ‘std::function<bool(Worms*, …
Run Code Online (Sandbox Code Playgroud)

c++ stl c++11

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

为什么我的程序在返回后会冻结?

我有这门课:

public class ImgurAPI
{
    private string ClientId = "id";
    private string ClientSecret = "secret";
    private string BasicUri = "https://api.imgur.com/3/";
    private HttpClient HttpClient = new HttpClient();
    public ImgurAPI()
    {
        HttpClient.DefaultRequestHeaders.Add("Authorization", "Client-ID " + ClientId);
    }

    private async Task<HttpContent> doRequest(string urlQuery)
    {
        HttpResponseMessage response = await HttpClient.GetAsync(urlQuery);
        return response.Content;
    }
    public HttpContent getImages(string search, int minSizeX, int minSizeY, string imageType, int page)
    {
        var url = BasicUri + "gallery/search/top/" + page.ToString() + "/";
        url += "?q=" + search;
        Task<HttpContent> task = …
Run Code Online (Sandbox Code Playgroud)

.net uwp

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

如何使 Cloud Run 与 kubernetes 集群通信?

我在 Cloud Run 上部署了一个映像,需要对 Kubernetes 集群内的服务进行 http 调用。

该服务只能从专用网络访问。

我在那篇文章中读到,我需要将云运行实例连接到我的私有 VPC,然后我需要创建一个将映射到我的 k8s 服务之一的负载均衡器。这将为我提供一个不会改变的外部 IP,我可以在 Cloud Run 中使用。

我理解对了吗?

那么,我如何为该外部 ip 分配主机名呢?我猜我需要更新 cloud run 使用的 dns?

kubernetes google-kubernetes-engine google-cloud-run

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

如何将size_t类型的指针强制转换为枚举指针?

我想为这个容器分配一个size_t:

  std::vector <nts::Tristate *>   _components;
Run Code Online (Sandbox Code Playgroud)

要做到这一点,我想投const size_t &nts::Tristate *

this->_components[0] = static_cast<nts::Tristate *>(&value);
Run Code Online (Sandbox Code Playgroud)

但是我有以下错误:

error: invalid static_cast from type ‘const size_t* {aka const long unsigned int*}’ to type ‘nts::Tristate*’
     this->_components[0] = static_cast<nts::Tristate *>(&value);
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?

c++ pointers

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

如何在UWP中将json字符串转换为对象?

我得到一个HttpContent包含json响应

string jsoncontent = content.ReadAsStringAsync().Result;
Run Code Online (Sandbox Code Playgroud)

我发现该类JavaScriptSerializer可以为我反序列化字符串,但是这个类在UWP中不存在,在UWP中是否还有这样的类?还有另一种方法可以将JSON转换为dictionnary吗?

.net json uwp

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

为什么在静态转换后调用构造函数?

这是我的班级:

class AComponent : public nts::IComponent
{
public:
  AComponent(const size_t &maxInputs, const size_t &maxOutputs, const size_t &value);
  AComponent(nts::AComponent &);
  virtual ~AComponent();
  virtual nts::Tristate Compute(size_t pin_num_this = 1);
  virtual void SetLink(size_t pin_num_this,
     nts::IComponent &component,
     size_t pin_num_target);
  void setComponent(const size_t &components, nts::Tristate &state);
  virtual void Dump(void) const;
  nts::Tristate &getComponent(const size_t &pin);
protected:
  std::vector <nts::Tristate *>   _components;
  size_t                        _maxInputs;
  size_t                        _maxOutputs;
};
Run Code Online (Sandbox Code Playgroud)

当我尝试拨打这一行时:

this->_components[pin_num_this] =
    &static_cast<nts::AComponent>(component).getComponent(pin_num_target);
Run Code Online (Sandbox Code Playgroud)

我发生了以下编译错误:

sources/AComponant.cpp:33:76: error: no matching function for call to ‘nts::AComponent::AComponent(nts::IComponent&)’
   this->_components[pin_num_this] = &static_cast<nts::AComponent>(component).getComponent(pin_num_target);
Run Code Online (Sandbox Code Playgroud)

如果我实现构造函数,它就在这里.问题是,我不想操纵IComponent,我想操纵AComponent …

c++ polymorphism dynamic-cast static-cast

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

为什么我的猴子补丁不起作用?

我正在尝试向我导入的类添加方法.

这是我的代码:

from pyrser.parsing import node

def to_dxml(self):
    return "test"

node.Node().to_dxml = to_dxml

tree = node.Node()
tree.ls = [1, 2.0, "titi", True, [2, 3, 4, [3, [3, 4]], 5]]
tree.dct = {"g":1, "y":2, "koko":{'D', 'T', 'C'}}
tree.aset = {'Z', 'X', 'T', 'U'}
tree.ablob = b'\xFF\xaa\x06Th -}'
print(tree.to_dxml())
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时,我得到了

AttributeError: 'Node' object has no attribute 'to_dxml'
Run Code Online (Sandbox Code Playgroud)

知道为什么它不起作用吗?

python

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