有人可以帮我找出我在这个bash脚本上做错了什么.我正在尝试使用if语句内部case语句和bash抱怨语法错误.
findinfo() {
OPT1=$1
case "$OPT1" in
linux)
echo "Setting environment"
ESC="hello_linux" if [[ "$PROJN" == "ONE" || "$PROJN" == "two" ]]
;;
Windows)
echo "Setting environment"
ESC="hello_windows" if [[ "$PROJN" == "ONE" || "$PROJN" == "two" ]]
;;
Android)
echo "Setting environment"
ESC="hello_android" if [[ "$PROJN" == "ONE" || "$PROJN" == "two" ]]
;;
esac
}
Run Code Online (Sandbox Code Playgroud)
谢谢
这是我在 linux 中的 c 中读写器问题的代码。我看到了一些相同的先前问题,他们的解决方案是使用 -lpthread 或 -ltr,我单独和一起尝试了这两个问题,但仍然不断收到相同的错误。请帮忙。
#include<stdio.h>
#include<stdlib.h>
#include<pthread.h>
#include<semaphore.h>
sem_t rmutex,wmutex,canwrite;
int readcount=0;
void *reader1(int i)
{
printf("Reader %d wants to read\n",i);
sem_wait(&rmutex);
readcount++;
sem_post(&rmutex);
printf("Reader %d is reading",i);
sem_wait(&rmutex);
readcount--;
if(readcount==0)
sem_post(&canwrite);
sem_post(&rmutex);
printf("Reader %d is exiting",i);
}
void *writer1(int i)
{
printf("Writer wants to write\n");
sem_wait(&canwrite);
sem_wait(&wmutex);
printf("Writer is writing\n");
sem_post(&wmutex);
printf("Writer is exiting\n");
}
int main()
{
pthread_t *reader[3],*writer;
int i;
sem_init(&rmutex,0,1);
sem_init(&wmutex,0,1);
sem_init(&canwrite,0,1);
pthread_create(&writer,NULL,writer1,(void *)i);
for(i=0;i<3;i++)
pthread_create(&(reader[i]),NULL,reader1,(void *)i);
sleep(10000);
for(i=0;i<3;i++)
pthread_join(reader[i],NULL);
pthread_join(writer[i],NULL);
return …Run Code Online (Sandbox Code Playgroud) 我是Clojure的新手并且无法使用clojure.contrib.math.我真正想做的就是取幂(power 2 3) --> 8
我整个上午都在寻找解决方案,但只是变得更加困惑.
如果我尝试(use 'clojure.contrib.math)我得到一个文件未找到错误.怀疑类路径问题我尝试以这种方式解决它,只是为了找不到contrib jar ...
然后我看到它contrib可能已被弃用.
所以简单的问题是,我如何访问数学函数?
clojure 1.5.1 Leiningen 2.2.0
Tahnks
是否有一个函数从键的字符串表示返回keysym?
例如, SDL_GetKeySym("d") == SDLK_d
我需要这个从配置文件中读取一个keysym,当然我SDL_GetKeyName用来获取密钥的字符串表示,然后将其保存到配置文件中.
errno在调用函数之前我们需要重置为零吗?见下面的代码.现在场景是a_dest_path现有目录.但是当我执行代码时,它总是尝试mkdir但返回错误表示无法创建目录,因为它存在.在GDB中,我errn在调用之前检查o opendir()并且errno是2.并且errno在调用期间似乎没有设置为零opendir().所以我需要errno在呼叫前重置为零opendir()吗?
errno可以在system()通话中更改,然后在我的else if分支中我检查结果system()但不是opendir().那么之后opendir(),我需要分配errno一个变量然后在if..elseif..else分支中检查这个变量吗?
DIR *dp = opendir(a_dest_path.c_str());
if (errno == ENOENT) {
string mkdir_comman = "mkdir " + a_dest_path;
system(mkdir_command.c_str());
} else if (errno == ENOTDIR) {
printf("Destination %s exists but is not directory\n", a_dest_path.c_str());
return k_error_not_directory;
} else if (errno == 0) {
closedir(dp);
}
Run Code Online (Sandbox Code Playgroud) 我编写了一个程序,需要使用以下库处理非常大的数据:
所以,我有内存问题(该程序使用很多),我想也许我可以替换这个库(已经存在的东西或我自己的实现):
那么,三个问题:
我正在尝试将进程的输出读取为字符串.由于某种原因,它看起来像输出中间的一行似乎输出(即,它显示在屏幕上,而不是保存到字符串).
string strOutput = "";
Process process = new Process();
process.StartInfo.FileName = "nslookup";
process.StartInfo.Arguments = "-type=mx uic.edu";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
strOutput = process.StandardOutput.ReadToEnd();
process.WaitForExit();
Console.WriteLine("xxxxxxxxxxxxxxxxxxx");
Console.WriteLine(strOutput);
Console.WriteLine("yyyyyyyyyyyyyyyyyyy");
Run Code Online (Sandbox Code Playgroud)
我得到的输出看起来像这样:
Non-Authoritative answer:
xxxxxxxxxxxxxxxxxxxx
Server: aaa.myserver.com
Address: 111.222.111.222
uic.edu MX preference = 10, mail exchanger - ...
...
yyyyyyyyyyyyyyyyyyyy
Run Code Online (Sandbox Code Playgroud)
当我通过命令行运行命令时,"非权威答案:"在"地址:..."之后出现
有人可以解释为什么输出它,而不是作为字符串的一部分存储?我可能错过了一些明显的东西,但我很难过.
谢谢
说我有一条线lead=george wife=jane "his boy"=elroy.我想与空间分开,但不包括"他的男孩"部分.我应该被视为一个人.
正常分裂时,它也将"他的男孩"分为"他的"和"男孩"作为第二部分.如何逃避这一点
以下我试过了
split " ", $_
Run Code Online (Sandbox Code Playgroud)
刚才知道这会奏效
use strict; use warnings;
my $string = q(hi my name is 'john doe');
my @parts = $string =~ /'.*?'|\S+/g;
print map { "$_\n" } @parts;
Run Code Online (Sandbox Code Playgroud)
但它看起来并不好.分裂本身的任何其他简单的事情?
我正在使用c#工作和一个有趣的项目,现在我的RegEx出了问题.我尝试了一些变形但没有找到解决方案.我想要这个字符串的RegEx"##Test1##".
所以我在这里试过这个RegEx:
[\#]{2}[a-zA-Z0-9]{1,}[\#]{2}
Run Code Online (Sandbox Code Playgroud)
它的工作正常,但我的问题是,
当传递"###Test1###"RegEx忽略第一个和最后一个#匹配内部"##Test1##".
但我不想那样.
在正则表达式应该只匹配这个字符串##Test1##.
希望有些人可以帮我解决这个问题.
问候,
#include<stdio.h>
#include<string.h>
void reverseMe(char *,int,int);
int main()
{
char str[]="cycle";
int len=strlen(str);
reverseMe(str,0,len-1);
return 0;
}
void reverseMe(char *x,int begin,int end)
{
char c;
c=*(x+begin);
*(x+begin)=*(x+end);
*(x+end)=c;
reverseMe(x,++begin,--end);
}
Run Code Online (Sandbox Code Playgroud)
为什么会出现分段错误?我犯的错误是什么?
我对C++比较陌生,我正在尝试使用 - > with structs.我有这个代码,应该从结构中打印出名称和年龄.我知道 - >当变量是一个指针时使用,所以我试图用以下代码声明一个指向struct的指针:
typedef struct Person{
string name;
int age;
};
int main() {
Person me;
me.name = "name";
me.age = 1;
Person* me2;
*me2 = me;
cout << me2->name << "," << me2->age << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
此代码导致分段错误.
但是,如果我改变了
*me2 = me
Run Code Online (Sandbox Code Playgroud)
至
me2 = &me
Run Code Online (Sandbox Code Playgroud)
代码工作正常(打印出名称和年龄).
我不确定为什么这两行代码不相同.我以为我被允许用*更改指针的内容,但我不确定为什么这不起作用.请问有人帮我理解吗?