The UNIX and Linux Forums  


Go Back   O UNIX e Linux Forum > Top Fóruns > Alto Nível de programação
.
google unix.com



Alto Nível de programação Post perguntas sobre C, C + +, Java, SQL, e outras linguagens de programação aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Chamando funções a partir de outro shell script jisha Programação Shell Script e 6 04-05-2008 05:29
Como passar duas ou mais para os principais parâmetros em shell script pinky UNIX para Dummies Perguntas & Respostas 0 10-12-2007 12:54
prg uma chamada a partir da casca! andy2000 Programação Shell Script e 4 03-31-2007 05:02
Chamando subscript sono, mas os principais paragens script doublejz Programação Shell Script e 1 09-12-2005 03:08
c + + chamada função main () norsk hedensk Alto Nível de programação 3 01-22-2003 08:28

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 09-25-2006
azevia flounder is offline
Usuário
  
 

Join Date: Jun 2002
Localização: PA
Lugares: 17
Valor de retorno (int) de chamar a principal reservatório

Qual é o sytax para voltar a partir de um programa C int principal voltar a chamar shell?

Código:
#!/usr/bin/ksh 

typeset -i NO_RECS

$NO_RECS=process_file

# Process file is a C program that is set up to return an int from main. The
#program complies with no issues, but an error is generated when the shell
#calls the program. Is the syntax correct to return the int value to a shell
#variable?

Aqui está o programa C:

Código:
int main(argc,argv)
{

int no_recs_tot ;

/* This is just a function within the c program that returns the int value */

no_recs_tot = bld_detail(v_out_path,v_in_path,inrec_cnt,v_src_data_dt);
 
return (no_recs_tot);

} /* End main */


Última edição por maçarico; em 09/25/2006 11:09.. Motivo: adicionar código tags
  #2 (permalink)  
Old 09-25-2006
Corona688 Corona688 is offline
Usuário
  
 

Join Date: Aug 2005
Localização: Saskatchewan
Posts: 1.960
Código tags por favor. Como (código) int main () (/ code), mas com [] em vez de ().

A sintaxe para retornar um código para o reservatório é exatamente como você mostrá-lo. O que pode estar errado é o valor que você voltar. Qualquer valor diferente de zero significa que algum tipo de erro. Zero significa sucesso.
  #3 (permalink)  
Old 09-25-2006
jim McNAMARA jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Localização: NM
Mensagens: 5.784
Além disso, em um POSIX compatível com sistema:

Código:
int main()
{
	return 42001;
}


Código:
$ cc -o testc test.c
$ testc
$echo $?
17

porque 42,001% 512 \u003d 17. Existe um valor máximo permitido para retornar códigos. Assim, se o OP tem vários milhares de registos, o valor será inútil.

Retornar códigos são para o programa estatuto.
  #4 (permalink)  
Old 09-25-2006
blowtorch's Avatar
maçarico blowtorch is offline Forum Advisor  
Adepto
  
 

Join Data: dezembro 2004
Local: Singapura
Posts: 2.350
Primeiro de tudo,
Código:
#!/usr/bin/ksh 

typeset -i NO_RECS

$NO_RECS=process_file

Não irá imprimir o código devolvido. A sintaxe é errado para começar, deve-se

Código:
NO_RECS=$(process_file)

A segunda coisa é que o regresso código de qualquer comando executado no reservatório não é impresso, mas armazenadas em uma variável $?. Para obter directamente o valor que tem o programa C, você deve fazê-lo desta forma:

Código:
#!/usr/bin/ksh
typeset -i NO_RECS
NO_RECS=$(process_file)

E seu programa C deve ser:

Código:
int main(argc,argv)
int argc; char *argv[];
{

int no_recs_tot ;

/* This is just a function within the c program that returns the int value */
no_recs_tot = bld_detail(v_out_path,v_in_path,inrec_cnt,v_src_data_dt);
 
fprintf(stdout,"%d",no_rec_tot);
} /* End main */

Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 09:57.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0