我在Delphi柏林有一个过程,我想将其转换为Linux的控制台应用程序。下面是我的步骤:
StrVal is declare as Private
procedure DoGetSy();
var
s: String;
n: Integer;
HasSy: Boolean;
begin
HasSy := False;
if ch = '_' then begin
SyBegPos := ix-1;
sy := StrCharSetSy;
GetChar();
GetIdent();
Ident := '_&
我用Linux编写了一个简单的C程序,从字符串中读取单个字符。关于字符串函数,我得到了一些错误。这是我的密码:
#include <stdio.h>
#include <string.h>
void main () {
char arr[10], vv[10];
int i = 0, len;
printf("enter the staement\n");
scanf("%s", arr);
len = strlen(arr);
printf("String laength=%d\n", len
我使用的是Linux,当我尝试使用下面的代码来显示:
#include <stdio.h>
#include <math.h>
int main()
{
int a,b,c;
int result;
printf( "How Many Times Would You Like to Add: ");
scanf( "%d", &a );
//getchar();
printf( "What Number Would You Like to Add: ");
我的C代码有点问题。问题是它不能识别do...while循环中的有效输入。
int stp;
do {
printf("\nPlease enter the packet data (maximum of 50 numbers): ");
while(getchar()!='\n');
scanf("%s", dataTest);
if(dataTest == '\n')
scanf("%s", dataTest);
if(dataTest==1)
最近分配给我的任务是用C语言为我的一个类创建一个程序分解器。虽然这是一个简短的,简单的小项目,但我遇到了一个问题,已经成为一个主要的头痛。该程序工作100%很好,除了它不会识别我的Mac电脑的引号。然而,我的教授在他的Linux计算机上测试了它,它没有问题。下面是源代码:
#include <stdio.h>
#define IN 0
#define OUT 1
#define QUOTE 2
int main(int argc, char** argv) {
int state = OUT;
int reader;
while ((reader=get
我有一个多线程程序。主线程使用getchar关闭所有其他线程及其本身。我在其中一个子线程中使用了计时器功能。此线程使用SIG34作为计时器过期。
在某种程度上,我收到了如下所示的SIG34。--这影响了我的主线程中的getchar,我的程序刚刚中止。请帮助我理解相同的内容。
Program received signal SIG34, Real-time event 34.
0x00007ffff6ea38cd in read () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
#0 0x00007ffff6ea38cd in read ()
我正在尝试学习输入/输出是如何工作的,并且对教科书中的一些基本代码感到好奇:
#include <stdio.h>
/* copy input to output; 1st version */
int main()
{
int c;
c = getchar();
while (c != EOF) {
putchar(c);
c = getchar();
}
}
在我使用gcc将这段代码转换为可执行文件后,它运行得非常好。然而,在可执行文件中,每当我按下"enter“时,我的所有输入都会被发送出去,因此也会打印到下一行作为输出。我如何设置才能获得我想要退
我继续学习C语言编程,今天我遇到了一个问题。在我的程序中,用户必须输入一个以分钟为单位的时间值,我的程序将计算出它的秒数(实际上非常简单)。但我想定一条规则,时间不能是负的。所以我使用了下面的代码:
if(a<=0)
{
printf("Time cannot be equal to, or smaller than zero, so the program will now terminate\n");
exit(EXIT_FAILURE);
}
但是现在,我不想终止我的程序,我想让它返回到用户必须输入值的状态。
我正在Linux中做一些套接字编程,我想知道当函数socket(...);失败时如何获得错误代码。
例如,对于"getaddrinfo“函数,我可以这样做:
//Resolve the server address and port
result = (struct addrinfo *) calloc(1, sizeof(struct addrinfo));
iResult = getaddrinfo("google.com", DEFAULT_PORT, &hints, &result);
if (iResult != 0){
我试图解开这段代码中的谜团,但徒劳无功。下面的程序用于打印输入的长度和行。它的最大限制是10个字符,对于超过10个字符的行,它会计算所有字符,但只存储10个字符。
令我困惑的是,在输出中,当输入一行超过10个字符时,当我将该行存储在一个10个字符大小的数组中时,它会打印输入的前11个字符。这怎么可能呢?
我使用的是Linux Mint中的GCC编译器。
#include<stdio.h>
#define MAX 10
int Getline(char arr[], int lim);
void main(){
int len=0;
char c=0;
c
我正在编写一个Linux应用程序。如果我调用fork(),然后运行接受控制台输入的应用程序,会发生什么情况?考虑下面的守则:
int process_id = fork();
if (process_id != 0) {
/* this is the parent process */
error = execv("../my_other_app", "parameter1", NULL);
if (error < 0) {
printf("error!");
}
} else {
我试图理解linux进程内存布局的基础,我得到了以下程序:
#include <stdio.h> // standard io
#include <stdlib.h> // C standard library
#include <pthread.h> // threading
#include <unistd.h> // unix standard library
#include <sys/types.h> // system types for linux
// getchar basically is like "r