小编Bif*_*fen的帖子

无法在 linux 中编译 Pro*c 代码

我在 C 项目中有一个 pro*C 文件,我正在尝试编译它,但在编译后我没有得到 C 代码。

以下是环境变量:

ORACLE_HOME           = /opt/vgi/oracle/12.1.0.2/client
Run Code Online (Sandbox Code Playgroud)

procTest.pc 文件:

#include <stdio.h>
#include <string.h>
#include <sqlda.h>
#include <sqlcpr.h>


EXEC SQL BEGIN DECLARE SECTION;
VARCHAR uid[30];
VARCHAR pwd[30];
EXEC SQL END DECLARE SECTION;

EXEC SQL INCLUDE SQLCA.H;

void main()
{
    strcpy(uid.arr,"SCOTT");
    uid.len =strlen(uid.arr);
    strcpy(pwd.arr,"TIGER");
    pwd.len = strlen(pwd.arr);

    EXEC SQL WHENEVER SQLERROR GOTO errexit;
    EXEC SQL CONNECT :uid IDENTIFIED BY :pwd;

    printf("Connected to Oracle8i using Scott/Tiger\n");

    EXEC SQL COMMIT WORK RELEASE;
    return;

errexit:
    printf("Connection failed");
    return;


} 

/* end …
Run Code Online (Sandbox Code Playgroud)

oracle stored-procedures oracle-pro-c

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

从输入中获取文件夹名称的正确方法

我写了一个脚本,我有问题从stdin获取文件夹的名称是我的问题;

myfunc:

 #!/bin/bash

audio=$1

mkdir -p ${audio}_rnn

...
rest of code
...
Run Code Online (Sandbox Code Playgroud)

我叫我的功能:

$./myfunc testdir
Run Code Online (Sandbox Code Playgroud)

通过这种方式,我有我预期的输出,这意味着我在当前目录中有另一个名为testdir_rnn的目录.

但是当我这样调用我的函数时:

$./myfunc testdir/
Run Code Online (Sandbox Code Playgroud)

我有问题; 它在testdir文件夹中创建_rnn文件夹,因为:echo $ {audio} _rnn在这种情况下是testdir/_rnn

从输入中获取文件夹名称的正确方法是什么?

bash stdin

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

如何通过匿名哈希集合中的键获取所有值?

所以我有

[{
   "name":"Hanna",
   "surname":"Miles"
},
{
   "name":"John",
   "surname":"Kenston"
}]
Run Code Online (Sandbox Code Playgroud)

在我的mongo dbase中.我收到的信息是:

my $people = $self->mongo->get_collection('persons')

我如何获得名单?所以在这种情况下我需要得到@result = ["Hanna","John"].将不胜感激任何帮助!

perl mongodb

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

如何从文本文件中填充指针数组?

我正在开展一个今天到期的学校项目,而且我遇到了一个可能很简单的问题.

我需要让游戏成为"Hangman",而我所坚持的任务是从文本文件中填充一系列指针(我需要阅读图片以获取错误的答案).

void ReadScenes(string *scenes[10])
 {
ifstream inFile("Scenes.txt");
if (inFile.is_open())
{
    int i = 0;
    string scene;
    while ((inFile >> scene)&&(i<10))
    {
        *scenes[i] = scene;
            i++;        
    }
}
}
int main()
{
  char *scenes[10];
  ReadScenes(scenes);
}
Run Code Online (Sandbox Code Playgroud)

我的文本文件如下所示:

char *scene1 =
    "                      \n"
    "                      \n"
    "                      \n"
    "                      \n"
    "                      \n"
    "                      \n"
    "       *              \n"
    "      * *             \n"
    "     *   *            \n";


char *scene2 =
    "       *              \n"
    "       *              \n"
    "       *              \n"
    "       *              \n"
    "       * …
Run Code Online (Sandbox Code Playgroud)

c++ text-files

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

Git repo 历史清理 - 逐步尝试 BFG - 但 PR 有更多差异 - 以及如何检查密码是否从历史记录中删除

我正在尝试从我的 Git 存储库历史记录中删除密码(我很长时间以来手动从我的 Git 存储库中删除了密码,但没有从历史记录中删除,这次尝试清除我的 Git 存储库的整个历史记录)

同样,从分叉主仓库开始,然后按照步骤 - BFG Repo-Cleaner并尝试像这样在 StackOverflow 上进行搜索

在本地 Git 存储库上遵循的所有步骤,一切看起来都很好,最后一个是git push,但在那之后我没有看到我的分叉存储库上的提交,尽管我看到了这条消息This branch is 853 commits ahead, 853 commits behind,并且它提供了创建PR(以及比较)的选项在这个 PR 中,我看到了很多差异 [比如前一段时间创建的新文件,并且仍然存在于当前版本中],这与我试图替换的密码无关。

Git 版本是 2.21.0

git github git-filter-branch git-rewrite-history bfg-repo-cleaner

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

linux mint 19.2 无法获取 Insomnia 存储库

我想将我的 php 版本从 8 降级到 7.4,所以我添加了 php repo,sudo add-apt-repository ppa:ondrej/php 但是当我运行时, sudo apt update我收到 Insomnia repo 的错误

Err:16 https://dl.bintray.com/getinsomnia/Insomnia  InRelease                                     
  403  Forbidden [IP: 52.35.132.179 443]
Reading package lists... Done                       
E: Failed to fetch https://dl.bintray.com/getinsomnia/Insomnia/InRelease  403  Forbidden [IP: 52.35.132.179 443]
E: The repository 'https://dl.bintray.com/getinsomnia/Insomnia  InRelease' is no longer signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
Run Code Online (Sandbox Code Playgroud)

我感谢任何人都可以帮助我,因为我还是 Linux 新手

insomnia linux-mint-19

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

我需要升级到最新版本的 Go 吗?

我在我的产品环境中使用go1.14.11,到目前为止运行良好。但1.14.11之后的版本非常多,大部分都有一些安全修复。

我想知道是否需要升级到最新版本的 Go?如果我继续使用go1.14.11会有什么大问题吗?

go

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

如何自动获取可用端口?

我正在为一些项目使用 docker 容器,为了节省时间,我为其他项目克隆了 docker 作曲家文件。

我遇到的问题是 mysql_database 和 apache_service 的端口是固定值。

例子:

version: "3.2"

services:
  apache_service:
    build:
      context: './docker/apache/'
    links:
      - mysql_service:mysql_service
    depends_on:
      - mysql_service
    ports:
      - "8080:80" # "random_port:80"
    volumes:
      - ./:/var/www/

  mysql_service:
    build:
      context    : ./
      dockerfile : ./docker/mysql/Dockerfile
    command: [
      '--character-set-server=utf8mb4',
      '--collation-server=utf8mb4_unicode_ci',
      '--default-authentication-plugin=mysql_native_password',
    ]
    restart:
      always
    volumes:
      - ./docker/initdb:/docker-entrypoint-initdb.d
      - ./docker/mysql/logs:/var/log/mysql
    ports:
      - "4306:3306" # "random_port:3306"
    environment:
      MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
    container_name:
      mysql_service

Run Code Online (Sandbox Code Playgroud)

当我复制 docker-composer 文件并写入时,docker-composer up我总是必须先更改端口......

我如何自动获取此服务的可用端口?

docker docker-compose

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

为什么下面的表达式结果是正确的,专门要求 C++

#include <iostream>
using namespace std;

int main()
{
    if(sizeof(int)> -1)
        cout<<"ok";
    else
        cout<<"not ok";

    return 0;
} 
Run Code Online (Sandbox Code Playgroud)

int的大小不是应该是4吗,它应该大于-1。

c++

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

std :: map迭代并删除valgrind错误

我有一个简单的程序,它在迭代Map时删除std :: map中的项目.如果我没有错误,则前导迭代器不会因地图中的擦除而失效.但是valgrind会抛出无效的读错误.有人可以解释原因.

#include <map>
#include <iostream>

typedef std::map<std::string, int> SourceMap;
int main(int argc, char *argv[])
{
    SourceMap sourceMap;
    sourceMap["item1"] = 1;
    sourceMap["item2"] = 2;
    sourceMap["item3"] = 3;
    sourceMap["item4"] = 4;


    for(SourceMap::const_iterator it=sourceMap.begin(); it != sourceMap.end(); ++it)
    {
        sourceMap.erase(it->first);
    }
}
Run Code Online (Sandbox Code Playgroud)

Valgrind错误:

==31703== Invalid read of size 8
==31703==    at 0x3851069E60: std::_Rb_tree_increment(std::_Rb_tree_node_base*) (in /usr/lib64/libstdc++.so.6.0.13)
==31703==    by 0x4013D6: std::_Rb_tree_const_iterator<std::pair<std::string const, int> >::operator++() (stl_tree.h:259)
==31703==    by 0x40106B: main (map_iterator.cpp:14)
==31703==  Address 0x4c2c0b8 is 24 bytes inside a block of size 48 free'd …
Run Code Online (Sandbox Code Playgroud)

c++ valgrind

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